【PygameGUI2.0 开发日志】 输入框终于来啦!
本帖最后由 cjjJasonchen 于 2024-3-17 16:02 编辑Entry —— 输入框
在座的各位新鱼油,老猫娘和亲爱的管理大大,大家好~~~{:10_298:}
数周未见,想我否?{:10_297:}
输入框它终于来啦!!!{:10_305:}
本期 demo 展示:
请看gif:
(这次采用了比较暖的颜色,以及圆角矩形)
源码:
上方gif动图笑点解析:
| 最外层使用了上上次与大家见过一面的window窗口组件
| 右上角的关闭按钮是用的华文琥珀字体的乘号{:10_264:}
| 复刻的是旧版小甲鱼python教程中tkinter的教学内容(有一定修改)
| 光标可以通过方向键和鼠标单击调整位置(暂时没做长按,刚刚突然想起来,下次再做吧~{:10_317:})
| 删除键可以长按,连续删除~
| 光标会始终显示在字体上层,你甚至可以把它的图像改成钻石剑。。。
| 密码之类的文本可以设定显示字符~你甚至可以让你的密码显示成颜文字。。。。
| 单击输入框会打开Pygame的输入模式,单击输入框以外的地方会使输入模式关闭,再也不用担心进入pygame游戏忘记切换成英文导致键盘失效啦~
| 有已输入拼音的显示和候选字显示(输入法)
后续开发方向:
1、这个输入框的基本功能已经完成了,但是我个人还不是特别满意,bug肯定还是有的,而且代码太难看了,以后大概率我会重构的
2、q群里的小伙伴们应该都知道,前段时间我搓了pygame的全屏的框架,看上去确实挺好用的,但是和pygameGUI不兼容,后续考虑一下怎么修。
(pygame全屏框架:拖动窗口边框,改变窗口大小,显示内容不变,可 f11 一键全屏。)
(不兼容的原因: 显示部分没有问题,但是对于鼠标的判定必须全部修改,原因:
举个例子:
按钮,按钮是通过获得自身绘制的矩形位置、鼠标位置,从而判断是否被点击的,
而上面说的全屏框架,改变了按钮的显示大小和位置,鼠标点击时就不会触发按钮的交互了)
目前想到的解决方法是做几判定鼠标交互的函数,放在widget基类里面,默认是现在使用的方法,然后再做几个别的,
遮罩判定法,还有支持全屏框架的判定法,等等。这样就支持全屏框架啦~
但是由于没有使用继承,一个一个改真的超级麻烦。。。。
意见征询:
大家有什么想说的评论区见哦~
评论区见~
{:10_275:}
加油!
希望做出更好的作品 zxbin1 发表于 2024-3-17 16:08
加油!
希望做出更好的作品
{:10_254:}
感谢催更~ at区:
@python爱好者. @中英文泡椒 @KeyError 额
谢谢 祝贺祝贺,操作界面get~ 不二如是 发表于 2024-3-17 16:44
祝贺祝贺,操作界面get~
{:10_297:} 我也祝贺祝贺
zxbin1 发表于 2024-3-17 17:01
我也祝贺祝贺
{:10_248:}
谢谢 恭喜恭喜!看着终于像一个真正的窗口了{:10_256:} liuhongrun2022 发表于 2024-3-17 17:18
恭喜恭喜!看着终于像一个真正的窗口了
{:10_298:}
感谢评分 就输入这块,已经在效果上几乎完美无瑕了,恭喜恭喜(所有细节都考虑到了,真可谓"巧夺天工",同时方便了我们这些平民),所有我的建议为:
1.就你的全屏问题,可以通过将所有非全屏情况下按钮的判定范围根据与最初全屏下与整体情况的比例关系来设定(即你小我大)
2.那个屏幕后盖建议使用透明的方式直接能透过电脑背景
3.建议尽快完成重构,多用继承,否则不利于后续开发,以及使用者自行拓展的便捷性(初衷)
4.建议设置个字体文件,然后输入事可以随时切换 加油,已经很好了 python爱好者. 发表于 2024-3-17 22:18
就输入这块,已经在效果上几乎完美无瑕了,恭喜恭喜(所有细节都考虑到了,真可谓"巧夺天工",同时方便了我 ...
1,收到,正准备做这样的
2,没太看懂是什么意思。。。
3,会重构的,等修好不兼容的bug python爱好者. 发表于 2024-3-17 22:18
加油,已经很好了
刚刚又思考了一下,或许我可以直接改掉传给ui库的鼠标位置参数,这样也可以避免不兼容的问题 cjjJasonchen 发表于 2024-3-17 16:11
at区:
@python爱好者. @中英文泡椒 @KeyError
{:10_279:}来啦 中英文泡椒 发表于 2024-3-18 09:17
来啦
感谢回复 cjjJasonchen 发表于 2024-3-18 00:02
1,收到,正准备做这样的
2,没太看懂是什么意思。。。
3,会重构的,等修好不兼容的bug
就是说像截图软件配的那种透明窗口一样,自己不显示内容 cjjJasonchen 发表于 2024-3-18 07:18
刚刚又思考了一下,或许我可以直接改掉传给ui库的鼠标位置参数,这样也可以避免不兼容的问题
但是同样的复杂程度下,这种难度更高,且其怪异逻辑也不利于后期继续开发 python爱好者. 发表于 2024-3-18 18:54
但是同样的复杂程度下,这种难度更高,且其怪异逻辑也不利于后期继续开发
复杂度不高,鼠标要改变的大小和位置我的全屏框架中都是算好的,但是之前说的函数方法仍然需要,这个改变pos可以作为全屏框架的专用方法{:10_338:}
页:
[1]
2