温馨提醒
如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢
本文最后更新于2024年1月5日,已超过 180天没有更新
这是一个VB6的Addin(外接程序),用于使用VB6开发工具直接拖放控件,直接可视化完成Python的Tkinter的GUI布局和设计,可以在VB界面上设置控件的大部分属性,最终自动生成必要的代码(包括回调函数框架),代码生成后仅需要在对应的回调函数中增加相应的逻辑功能代码即可。
这个工具支持绝大部分Tkinter控件,可应付一般GUI的需求。
适用于学习了Tkinter并不想太麻烦手写GUI生成和排版代码,也不想用其他第三方工具和框架比如wxPython/PyQt的同学。
适用于界面不太复杂的小程序开发,界面复杂的还是适用wxPython/PyQt等框架吧。
因为Tkinter为Python标准库,使用Tkinter完成的Python程序可以称为"绿色软件",不需要目标机器上安装wxPython/PyQt等框架,只要有Python的机器就能运行。即使使用pyinstaller/cx_freeze等打包成exe,最终文件也不会很大。
如果软件逻辑不是很复杂,通常一个 py 文件搞定,不像其他一些辅助框架,需要几个文件。
使用方法:
打开VB6,新建一个标准EXE工程,在窗体上设计自己的GUI布局,这个工作估计没有VB基础的同学都可以完成,同时可以设置相应的控件属性。
如果不希望窗体大小可变,建议在VB6中修改窗体的BorderStyle属性为"Fixed Single"或"Fixed Dialog"。
如果使用自带安装程序安装了插件,现在VB的工具条上应该有一个新图标(一片橙红色羽毛), 如果没有,到菜单"外接程序"|"外接程序管理器"里面启动 Vb6Tkinter, Vb6Tkinter 图标和菜单应该会出现。
启动Vb6Tkinter后,先按“刷新窗体列表”按钮,列出当前工程的所有窗体和控件列表。
逐个确认各控件的输出属性,在要输出的选项前打钩,如果必要,可以在属性列表中双击修改属性的值。(一般情况不需要再修改控件属性)。 Vb6Tkinter尽量的将VB控件属性翻译成Tkinter控件属性,比如字体、颜色、初始值、外观、状态等,甚至包括按钮类和菜单的快捷键设置等等。当然了,如果部分属性没有对应关系的,需要在Vb6Tkinter界面上设置。
按“生成代码”按钮则在代码预览窗口生成代码,可以双击代码预览窗口放大阅读,也可以直接修改代码。
确认完成后可以将代码拷贝到剪贴板或保存到文件。 布局可以使用百分比定位(相对定位)或绝对坐标定位(按像素定位),百分比定位为有一个好处,主界面大小变化后,控件也可以相对变化大小。如果不希望主界面大小变化后控件跟随变化,可以选择绝对坐标定位。 注:如果修改了以前设计的界面,可以选择仅输出main函数或界面生成类。不影响外部已经实现的逻辑代码。
如果程序有多个GUI界面,可以在VB工程中添加窗体,就可以选择产生哪个窗体的对应代码。
针对结构化代码,如果要在Python代码中引用和修改其他控件的值,可以使用全局字典gComps,这个字典保存了所有的GUI元素和一些对应的控件变量,可以直接使用形如gComps["Text1Var"].set("new Text")的代码来访问对应控件。 如果输出的是面向对象代码,则可以在界面派生类Application中使用self.widgetName方式直接访问对应的控件。
一般的GUI框架都会将UI部分和逻辑代码部分分别放在不同的文件中,在逻辑代码文件中导入UI文件,实现修改UI不影响逻辑代码。因为对于实现简单的程序来说,我偏爱单文件,所以我将UI类和逻辑代码类都放在同一个文件中,在修改界面后,你可以直接覆盖对应的Application_ui类即可实现界面的变更,不过如果增加了新的事件回调函数,需要在子类Application中增加才行。
GitHub地址:https://github.com/cdhigh/Vb6Tkinter
评论0+