一、发现
我今天在网上搜关于Python Tkinter方面的信息时,发现了Python界面编辑器 Tkinter布局助手 的使用说明。
https://blog.csdn.net/weixin_52777652/article/details/135291731?spm=1001.2014.3001.5506
这个编辑器是个开源的项目,个人用户可以免费使用,我感觉挺好的,就尝试这用了一下。
二、体验
这个编辑器是个网页版应用( https://www.pytk.net/),无需安装。软件布局与常见的其它UI编辑器相似,我摸索了一下就适应了,感觉还不错。

编辑好的界面会保存住,关闭这个页面再次进来,会显示上次的内容,这点挺好。
页面编辑好后,可以查看代码,并能导出为py文件,或者直接复制代码到py文件里。


我把生成的py文件用pycharm打开,添加相关的逻辑代码,实现我需要的功能。

这次只是初次尝试这个编辑器,就做了一个简单的界面,对输入的两个数字做加减乘除四则运算。用到的组件有标签、文本框,单选框和按钮。

最后我还尝试了将源文件打包成exe文件,Tkinter相比QT和wxPython最大的优势就是打包生成的exe文件要小很多,虽然Tkinter的功能没有后两者强大,但用来做简单的小软件还是够了。

我在学习python初期都是用Tkinter做UI的,但是由于没有相应的界面编辑器,完全靠手工输入代码很痛苦。所以,后来我转而学习了QT和wxPython,并用他们做UI,就是因为这两者都有界面编辑器,但这两者做出的文件哪怕只是小工具,打包生成的exe文件比Tkinter要大不少。
Tkinter布局助手让我很惊喜,以后我打算多多尝试用它做一些小工具的UI,来减小软件的体积。
三、发现的问题
今天是第一次试用,还是发现了一点问题,不知道是我没弄清楚,还是bug。
一个问题是我在按钮绑定了响应事件,源码自动添加了一条print语句,点击按钮后应该会打印一条信息。但我将py文件用pycharm打开后直接运行,点按钮没有出现预设的打印信息。我检查了软件发现绑定事件是放在Win类中的,响应事件对应的函数是放在Controller类中的,而软件直接调用的WinGUI类,而WinGUI类并没有调用前面两个类,导致了点按钮无响应,我只好对源码进行修改来实现按钮的响应。
二个问题是,我在界面中放了四个单选按钮,是打算做成一个按钮组,但似乎这个助手没办法将按钮做成一个组。我只能自己手动添加代码来实现。当然,也许是我对这个软件还不太了解所致。
由于还只用了一次,只是简单的尝试了一下,我所说的不一定都是正确的,后面我还会再多尝试一下,希望这个软件能够带给我不一样的感受。