【tkinter】Gui界面 tkinter的vb可视化工具,直接生成python代码

博客已经搬家到“捕获完成”:

https://www.v2python.com

 

 

 

下载地址:

http://pan.baidu.com/s/1kVLOrIn#list/path=%2F

依次安装,运行vb控件即可

 

 

 

复制代码

0.简介
    这是一个VB6的ADDIN(外接程序),用于使用VB6开发工具直接拖放控件,直接可视化完成Python的TKinter的GUI布局和设计,可以在VB界面上设置
    控件的一些属性,最终自动生成必要的代码(包括回调函数框架),代码生成后仅需要在对应的回调函数中增加相应的逻辑功能代码即可。
    这个工具支持绝大部分TKiner控件,可应付一般GUI的需求。(列表参见下面的控件说明)。

1.适用对象
    适用于学习了TKinter并不想太麻烦写GUI代码,也不想用其他工具和框架,比如wxPython,PyQt4的同学。
    适用于界面不太复杂的小程序开发,界面复杂的还是适用wxPython等框架吧。因为TKinter为Python标准库,使用TKinter完成的Python程序可以称为
    “绿色软件”,不需要目标机器上安装wxPython,PyQt4等框架,只要有Python的机器就能运行。
  如果软件逻辑不是很复杂,通常一个*.py搞定,不像其他框架,需要几个文件。
    
2.使用方法简介
  2.1 首先注册此插件,可以使用自带的安装程序,或自己手动完成。
  2.2 打开VB6,新建一个标准EXE工程,在窗体上设计自己的GUI布局,这个工作估计没有VB基础的同学都可以完成,同时可以设置相应的控件属性。
  2.3 如果使用自带安装程序安装了插件,现在VB的工具条上应该有一个新图标(一片橙红色羽毛),如果没有,到菜单"外接程序"|"外接程序管理器"里面启动Visual Tkinter,Visual Tkinter图标和菜单应该会出现。
  2.4 启动Visual Tkinter后,先按“刷新窗体列表”按钮,列出当前工程的所有窗体和控件列表。
  2.5 逐个确认各控件的输出属性,在要输出的选项前打钩,如果必要,可以在属性列表中双击修改属性的值。(一般情况不需要再修改控件属性) VisualTkinter尽量的将VB控件属性翻译成Tkinter控件属性,比如字体、颜色初始值、外观、状态等,甚至包括按钮类和菜单的快捷键设置等待。当然了,如果部分属性没有对应关系的,需要在VisualTkinter界面上设置。
  2.6 按“生成代码”按钮则在代码预览窗口生成代码,可以双击代码预览窗口放大阅读,也可以直接修改代码。
  2.7 确认完成后可以将代码拷贝到剪贴板或保持到文件。布局可以使用百分比定位(相对定位)或绝对坐标定位(按像素定位),百分比定位为有一个好处,主界面大小变化后,控件也可以相对变化大小。如果不希望主界面大小变化后控件跟随变化,可以选择绝对坐标定位。
    注:如果修改了以前设计的界面,可以选择仅输出main函数或界面生成类。不影响外部已经实现的逻辑代码。
  2.8 如果程序有多个GUI界面,可以在VB工程中添加窗体,就可以选择产生哪个窗体的对应代码。
  2.9 针对结构化代码,如果要在Python代码中引用和修改其他控件的值,可以使用全局字典gComps,这个字典保存了所有的GUI元素和一些对应的控件变量,可以直接使用形如gComps["Text1Var"].set("new Text")的代码来访问对应控件。如果输出的是面向对象代码,则可以在界面派生类Application中直接访问对应的控件。
  2.10 一般的GUI框架都会将UI部分和逻辑代码部分分别放在不同的文件中,在逻辑代码文件中导入UI文件,实现修改UI不影响逻辑代码。因为对于实现简单的程序来说,我偏爱单文件,所以我将UI类和逻辑代码类都放在同一个文件中,在修改界面后,你可以直接覆盖对应的Application_ui类即可实现界面的变更,不过如果增加了新的事件回调函数,需要在子类Application中增加才行。

3.目前支持的控件列表
  3.1 Label
    标签条在VB和Python中基本一样。如果不启用ttk,则在文本中插入\n来换行,
    如果启用了ttk,则只支持单行文本(多行可以使用Message控件实现)。
  3.2 TextBox
    Python文本框有两种:Entry和Text,如果VB的TextBox的MultiLine=False,则
    生成Entry,否则生成Text。
  3.3 Frame
    对应Python的LabelFrame控件,做为其他控件的容器,或做为界面元素视觉分类。
  3.4 CommandButton
    对应Python的Button,没有太多区别。
    为了代码简洁,窗体的退出按钮可以设置Cancel属性为True,然后程序自动生成
    对应Tkinter的destroy回调,这样就不需要再实现一个回调函数。
    在VB里面字母前增加一个"&"符号可以直接绑定一个快捷键Alt+对应字母,
    VisualTkinter也支持此设置,自动生成对应的事件绑定代码。
    其他控件比如Checkbox等有"标题"属性的控件一样如此处理。
  3.5 CheckBox
    多选按钮对应Python的Checkbutton。
  3.6 OptionButton
    单选按钮对应Python的Radiobutton。
  3.7 ComboBox
    组合框在Tkinter中没有对应的控件,比较类似的只有OptionMenu,类似ComboBox
    的Style=2 (Dropdown List)时的表现,一个下拉列表,只能在列表中选择一个值,
    不能直接输入。所以建议在VB的ComboBox中写下所有的下拉列表值。
    如果启用了TTK主题扩展库支持,则直接对应到TTK的Combobox,外形和行为基本
    一致。
  3.8 ListBox
    列表框对应Python的Listbox,行为也类似,可以在设计阶段设置初始列表。
    如果需要滚动,则在适当位置创建滚动条,然后在Addin界面选择其xscrollcommand
    和yscrollcommand属性为对应滚动条的.set方法。
  3.9 HScrollBar, VScrollBar
    滚动条在Python中为Scrollbar,通过设置orient来控制水平还是垂直。
  3.10 Slider
    类似对应Python中的Scale。
  3.11 PictureBox
    简单对应到Python中的Canvas,用做其他控件的容器或画图容器使用。
    如果需要滚动,则在适当位置创建滚动条,然后在Addin界面选择其xscrollcommand和
    yscrollcommand属性为对应滚动条的.set方法。
  3.12 Menu
    可以使用VB的菜单编辑器来设计Python的菜单。
    在VB中的菜单标题为"-"是分隔条。
    也可以在正常的菜单标题中增加(&+字母)的方式添加快捷键。
  3.13 Line
    可以用于组织复杂界面,仅支持水平或垂直线。
  ===================================================
  以下的控件需要在VB的'控件工具箱'中按右键添加'部件',选择
  'Microsoft Windows Common Controls 6.0'
  ====================================================
  3.14 ProgressBar
    对应到Python的Progressbar,需要启用TTK主题扩展(默认)
  3.15 TreeView
    对应到Python的Treeview,树形显示控件,可以选择是否显示标题行,
    需要启用TTK主题扩展(默认)
    如果需要滚动,则在适当位置创建滚动条,然后在Addin界面选择其xscrollcommand
    和yscrollcommand属性为对应滚动条的.set方法。
  3.16 TabStrip
    选项卡控件,对应到Python的Notebook,需要启用TTK主题扩展(默认)。
    如果要布局各个页面内的控件,按以下步骤:
    1.每个选项页对应一个Frame或PictureBox,命名为:TabStrip的名字
    加'__Tab'(双下划线),再加一个序号,从1开始,比如TabStrip的名字为TabStrip1,
    则你可以创建一个PictureBox,命名为'TabStrip1__Tab1'(注意大小写)。
    2.然后在PictureBox/Frame内摆放你需要的其他控件,生成代码后此容器内自动添加
    到对应的选项页,VisualTkinter会在后台为您做这一切。
    标签页对应的PictureBox/Frame可以放置在窗体的可视范围外,也就是说设计好
    对应的选项页后,缩小IDE中的窗体为你需要的大小。
    注意:
    1. 你需要使用相对坐标,PictureBox或Frame容器的大小请和TabStrip内部大小一致或
    接近,否则选项页内的控件将会通过拉伸或收缩来适配可伸缩来适配可用空间,这样有些
    控件看起来会比较怪。如果使用绝对坐标,则PictureBox/Frame可以不用和TabStrip
    一样大,PictureBox/Frame内的控件将以TabStrip的左上角为原点放置,大小和长宽比例
    会和设计时一致。
    所以还是建议如果有TabStrip控件的话,使用绝对坐标。
    2. Frame和PictureBox均可作为容器,如果使用Frame作为容器,则其标题可以作为选项页
    标题,如果你没有设置选项页标题的话。(选项卡控件的标题设置优先)
  -----------------------------------------------------
  3.17 CommonDialog
    这个控件也算支持,如果VB窗体中有这个控件,则在Python代码中导入
    filedialog、simpledialog、colorchooser这三个模块,这三个模块提供简单的
    文件选择、输入框、颜色选择对话框功能。
    需要在控件工具箱增加"Microsoft Common Dialog Control 6.0"

4. 其他建议
  1. 不支持使用控件数组,界面可以显示,但是后面的同名控件名会覆盖前面定义的。
  2. 窗体的ScaleMode建议保持默认值(vbTwips),如果要设置为其他值,则Frame控件
     内就不要再放Frame控件了,否则其内部的控件布局错误。
  3. 如果仅需要简体汉字界面,则可以删掉Language.lng文件,仅需VisualTkinter.dll
     一个文件。

5. ttk库额外说明
  ttk主题扩展看起来很漂亮,在不同操作系统下界面呈现为本地化风格,建议使用,
  只是要注意以下几个ttk的BUG:
  1. TTK的Entry和Combobox控件背景色设置无效(可以设置,不报错,但是界面不变)。
  2. TTK的Label中的文本不能换行,但是tkinter的Label控件可以通过插入'\n'来换行。
  3. LabelFrame和Notebook控件的字体设置无效。
  4. Python 2.7.3附带的ttk中的Treeview字体设置无效,但3.2.3的Treeview的字体
     设置有效。

复制代码

 

 

 

参考:

https://www.cnblogs.com/darkspr/p/6077573.html

这是一个VB6的IDE插件(Addin),使用VB6的IDE直接设计Python的界面。 PythonVB都是能让人快乐的编程语言,我使用了Python之后,很多自己使用的工具都使用Python开发或改写了,因为最终实现的Python代码实在太短了(相比VB),有时候Python一行代码就可以实现VB一个函数的功能。 Python就是这种让人越用越开心的语言。 不过说实在,使用Python开发GUI界面还是麻烦了一些了,自带的标准库Tkinter使用起来非常简单,不过对于习惯了VB拖放控件完成界面设计的同学来说,还是不够人性化。TK也有一个工具叫GUI Builder,不过它使用Layout布局,不够直观,而且界面简陋,用起来也不爽。 至于PyQt/wxPython等GUI库,尽管有可视化设计工具,但总感觉做一般的轻量级应用是杀鸡用牛刀,学习起来也比较复杂,而且不够环保,不够低碳,要带一个很大的库,需要目标机器上夜同样安装了PyQt/wxPython,做不了绿色软件。 所以最终的结果是我更喜欢Tkinter,用起来很简单,绿色环保,真正的跨平台,一个py文件到处运行(担心泄密就编译成pyc)。 很多人都认为TK的界面不够美观,不过导入Python自带的标准TTK主题库,界面非常Native,不输PyQt/wxPython。 此Addin默认启用TTK支持,也可选择关闭。 总而言之,轻量级GUI,TK+TTK足够。 使用此Addin,你可以不用写一句代码就可以生成一个完整可运行的PythonGUI界面,支持python 2.X和3.X。 安装方法:将压缩包解压到你希望的目录,然后执行Setup.exe完成注册插件过程,打开VB6就可以用了。 在VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,Addin尽量将其翻译为tkinter的控件属性),点工具栏上的VisualTkinter(图标为一片橙红色羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以拷贝至剪贴板或保存至文件。 一般情况下你可以不用再改变tkinter的控件属性,但是如果你熟悉tkinter,需要更多的控制,可以一一核对各属性,并且修改,再生成代码。 除了用来设计界面外,此ADDIN内置的各控件属性列表可以做为编程参考,比较完整,除了极少数我认为大多数人都不用的属性外,属性定义基本上是我从官方的tkinter文档直接翻译的。 如果还没有VB6,网上找一个VB6精简版即可(建议使用12M的版本,6M的版本也可以使用,不过工具栏图标无法显示,可以通过菜单执行此插件)。 经过网友测试,完美支持WinXP,Windows 7, Windows 8。
这是一个VB6的IDE插件(Addin),使用VB6的IDE直接设计Python的界面。 PythonVB都是能让人快乐的编程语言,我使用了Python之后,很多自己使用的工具都使用Python开发或改写了,因为最终实现的Python代码实在太短了(相比VB),有时候Python一行代码就可以实现VB一个函数的功能。 Python就是这种让人越用越开心的语言。 不过说实在,使用Python开发GUI界面还是麻烦了一些了,自带的标准库Tkinter使用起来非常简单,不过对于习惯了VB拖放控件完成界面设计的偶来说,还是不够人性化。TK也有一个工具叫GUI Builder,不过它使用Layout布局,不够直观,而且用起来很不爽。。 至于PyQt/wxPython等GUI库,尽管有可视化设计工具,但总感觉做一般的轻量级应用是杀鸡用牛刀, 而且不够环保,不够低碳,要带一个很大的库,需要目标机器上夜同样安装了PyQt/wxPython,做不了绿色软件。 所以最终的结果是我更喜欢Tkinter,用起来很简单,绿色环保,真正的跨平台,一个py文件到处运行(担心泄密就编译成pyc)。 很多人都认为TK的界面不够美观,不过我经过多次实验后发现导入Python自带的标准TTK主题库,界面非常Native,不输PyQt/wxPython。 此Addin默认启用TTK支持,也可选择关闭。 总而言之,轻量级GUI,TK+TTK足够。 使用此Addin,你可以不用写一句代码就可以生成一个完整可运行的PythonGUI界面,支持2.X和3.X。 安装方法:将压缩包解压到你希望的目录,然后执行Setup.exe完成注册插件过程,打开VB6就可以用了。 在VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,Addin尽量将其翻译为tkinter的控件属性),点工具栏上的VisualTkinter(图标为一片羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以拷贝至剪贴板或保存至文件。 一般情况下你可以不用再改变tkinter的控件属性,但是如果你熟悉tkinter,需要更多的控制,可以一一核对各属性,并且修改,再生成代码。 当然除了用来设计界面外,此ADDIN内置的各控件属性列表可以做为编程参考,比较完整,除了极少数我认为大多数人都不用的属性外,属性定义基本上是我从官方的tkinter文档直接翻译的。 如果还没有VB6,网上找一个VB6精简版即可,不到20M,小巧玲珑。 代码已经在Github上托管,更新的版本可以在这上面找到,需求也可以在上面提: https://github.com/cdhigh/Visual-Tkinter-for-Python
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值