免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cdhigh

[原创]使用VB设计Python的GUI界面(Tkinter Designer) 附源码,[更新V1.5.1] [复制链接]

论坛徽章:
0
发表于 2012-11-03 07:13 |显示全部楼层
v1.2.5已经发布到Github,应ld2759需求,增加UNICODE字符串的自动前缀,并且修正了一个无法生成菜单代码的BUG(因为V1.1版本引入TTK支持,忘记修改菜单的代码了)。
同时VB按钮实在太丑了,所以在网上找了一个渐变按钮美化一下下。

VisualTkinter_v1.2.5.rar (439.56 KB, 下载次数: 87)

论坛徽章:
8
双鱼座
日期:2014-07-30 09:28:14辰龙
日期:2014-08-22 14:14:43水瓶座
日期:2014-12-02 15:36:392015年亚洲杯之朝鲜
日期:2015-02-06 09:28:592015亚冠之全北现代
日期:2015-09-10 14:40:18青铜圣斗士
日期:2015-11-18 09:22:56黄金圣斗士
日期:2015-11-26 09:17:2615-16赛季CBA联赛之新疆
日期:2016-08-15 17:00:22
发表于 2012-11-03 11:20 |显示全部楼层
感谢更新,很好用

论坛徽章:
0
发表于 2012-11-03 12:42 |显示全部楼层
本帖最后由 odp99 于 2012-11-03 12:51 编辑

报错,在打开源代码工程(*.vbp),在1.2.4版本

行 16: 控件 stabar 的类 MSComctlLib.StatusBar 不是一个已加载的控件类。
捕获.PNG

论坛徽章:
0
发表于 2012-11-03 13:05 |显示全部楼层
在版本1.2.5中没有问题

论坛徽章:
0
发表于 2012-11-03 18:15 |显示全部楼层
回楼上:
VB报MSCOMCTL.OCX(Microsoft Windows Common Controls 6.0)加载错误,这个控件集是除了标准工具箱提供的控件外,最常用的一个控件集了。
应该是WIN7的权限管理问题,为了避免偶发性的错误,使用管理员权限打开VB6?
我没有WIN7,无法测试WIN7下的兼容性。

论坛徽章:
0
发表于 2012-11-03 19:14 |显示全部楼层
  2.9 针对结构化代码,如果要在Python代码中引用和修改其他控件的值,
    可以使用全局字典gComps,这个字典保存了所有的GUI元素和一些对应的
    控件变量,可以直接使用形如gComps["Text1Var"].set("new Text")的代码
    来访问对应控件。
    如果输出的是面向对象代码,则可以在界面派生类Application中直接访问
    对应的控件。
------------------------------------------------------------------------------------------
这个能不能分别举个实例啊,我用gComps["Text1Var"].set("new Text"),是有问题的,谢谢!

论坛徽章:
0
发表于 2012-11-04 09:18 |显示全部楼层
先假定选择输出结构化代码,而不是面向对象代码。
如果窗体上有一个文本框名为Text1,则会生成形如如下代码:
Text1Var = StringVar(value='Text1')
Text1 = Entry(top, text='Text1', textvariable=Text1Var)
Text1.place(relx=0.13, rely=0.099, relwidth=0.458, relheight=0.169)
gComps['Text1'] = Text1
gComps['Text1Var'] = Text1Var

可以看到,在界面生成代码中,Text1Var已经存入全局字典,如果要设置文本框的文本,可以使用这个语句完成:
gComps['Text1Var'].set('New Text')

假如文本框名字为myText,则控件变量的值为myTextVar,则使用
gComps['myTextVar'].set('New Text')
完成,
依次类推,其他类型的控件类似。

论坛徽章:
0
发表于 2012-11-04 09:21 |显示全部楼层
如果选择生成面向对象代码(默认值),则可以在类Application中任何一个函数中使用语句:
self.Text1Var.set('New Text')
来设置文本框Text1的文本。
依次类推,其他类型的控件类似。

论坛徽章:
0
发表于 2012-11-20 13:31 |显示全部楼层
楼主威武,不过我喜欢Delphi,楼主能否把他们结合?

论坛徽章:
0
发表于 2012-11-20 23:51 |显示全部楼层
本帖最后由 wyybeyond 于 2012-11-20 23:51 编辑

生成的代码复制后粘贴到Sublime Text2 和Editplus 中时,中文会出现乱码,即使保存的文档都是unicode格式,utf8的都是一样的。
另外,对于
        self.Label3 = Label(self.Frame2, text='文本', style='Label3.TLabel')
        self.Label3.place(relx=0.48, rely=0.03, relwidth=0.10, relheight=0.06)
这种,可以合并成为一行
       self.Label(self.Frame2, text='音标:', style='Label3.TLabel').place(relx=0.48, rely=0.03, relwidth=0.10, relheight=0.06)
       (这个style 可能需要调整下)
无他,仅仅是不喜欢看这一堆label1、label2之类的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP