免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cdhigh
打印 上一主题 下一主题

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

论坛徽章:
0
121 [报告]
发表于 2015-11-12 14:50 |只看该作者
本帖最后由 zzczx 于 2015-11-12 14:51 编辑

回复 1# cdhigh


首先赞下,谢谢楼主的工作。有个bug,貌似 root的title不能带空格?

论坛徽章:
0
122 [报告]
发表于 2015-11-12 15:16 |只看该作者
另外,label的wrap要是能够自动获取vb空间的属性,并根据空间的宽度决定autowrap的宽度就好了。

论坛徽章:
0
123 [报告]
发表于 2015-11-15 00:13 |只看该作者
回复 121# zzczx

插件列表框上显示的值是用来进行二次确认的!

如果不是必要,不建议直接修改此插件的列表框上显示的数值,而在VB的界面上修改,因为在软件开发过程中,界面往往会有多次变化,如果每次都要修改同样的内容会容易犯错,而且繁琐。
比如窗体标题,建议在VB的FORM上的属性栏“Caption”上修改,则支持空格,其实空格是支持的,只是因为此列表框使用了空格键做为选择的快捷键,所以你有此错觉,将文本直接拷贝进去就不会有此问题,但是还是建议回到VB界面,在右下方的属性栏中修改然后保存。

绝大部分的属性都可以在VB界面上修改,而不是在此插件的列表框中修改,在readme中有详细描写。


   

论坛徽章:
0
124 [报告]
发表于 2015-11-15 00:18 |只看该作者
回复 122# zzczx


    这问题有点麻烦,因为涉及到VB/python所用字体/字号不一定一致,操作系统所设置的用户字号缩放等因素,不容易实现完美效果,所以还是建议自己手动设计好label的大小,适当留一些预留为好。

如果需要手工换行,可以参考readme
  1. tkinter的Label控件可以通过插入'\n'来换行,但是ttk的Label只能通过wraplength属性来换行。
复制代码

论坛徽章:
0
125 [报告]
发表于 2015-11-17 14:17 |只看该作者
回复 123# cdhigh


    这个后面也发现了。谢谢回复。

论坛徽章:
0
126 [报告]
发表于 2015-11-17 14:31 |只看该作者
回复 124# cdhigh


    早上被一个utf的BOM搞得半死。。
    有没有办法在生成代码的时候,采用不带BOM的utf-8格式?我在windows下生成界面,在linux底下执行,因为BOM导致#!一直无法被shell认出来,找了半天的原因。
谢谢

论坛徽章:
0
127 [报告]
发表于 2015-11-18 17:47 来自手机 |只看该作者
是有这个问题,因为VB6的功能比较弱,不直接支持utf8,我都还是用一个取巧的方式保存为utf8,但是我一般不用保存功能,而是拷贝到剪贴板,然后再粘贴到文本编辑器。

我再看看如何才能保存为无bom的utf8.

论坛徽章:
0
128 [报告]
发表于 2015-11-19 15:42 |只看该作者
本帖最后由 zzczx 于 2015-11-19 15:46 编辑

cdhigh 发表于 2015-11-18 17:47
是有这个问题,因为VB6的功能比较弱,不直接支持utf8,我都还是用一个取巧的方式保存为utf8,但是我一般不用 ...[/quote]

老大,vb的tabstrip能否换成sstab控件? tabstrip现在的设计,如果tab数目一多,整个界面好乱,屏幕都不够用了。
如果能够用sstab,界面直观很多。

论坛徽章:
0
129 [报告]
发表于 2015-11-19 17:46 |只看该作者
cdhigh 发表于 2015-11-18 17:47
是有这个问题,因为VB6的功能比较弱,不直接支持utf8,我都还是用一个取巧的方式保存为utf8,但是我一般不用 ...


这个问题其实只要知道原因了关系不到。反正一定会再编辑的,直接gvim里面设定:set nobomb然后保存就好了。

论坛徽章:
0
130 [报告]
发表于 2015-11-19 18:38 |只看该作者
回复 127# cdhigh


    还有一个很奇怪的bug。我用tabstrp生成四个tab,一开始没有问题。后面不知道怎么回事每次生成的代码顺序有点问题:

  1.         self.TabStrip1__Tab4 = Frame(self.TabStrip1)
  2.         self.LibList = Canvas(self.TabStrip1__Tab4, takefocus=1, yscrollcommand=self.LibTabVScroll.set)
  3.         self.LibList.place(relx=0.024, rely=0.095, relwidth=0.584, relheight=0.763)
  4.         self.LibTabVScroll['command'] = self.LibList.yview
  5.         self.Check3Var = IntVar(value=0)
  6.         self.style.configure('TCheck3.TCheckbutton', font=('宋体',9))
  7.         self.Check3 = Checkbutton(self.LibList, text='Check3', variable=self.Check3Var, style='TCheck3.TCheckbutton')
  8.         self.Check3.place(relx=0.041, rely=0.348, relwidth=0.62, relheight=0.099)
  9.         self.Check2Var = IntVar(value=0)
  10.         self.style.configure('TCheck2.TCheckbutton', font=('宋体',9))
  11.         self.Check2 = Checkbutton(self.LibList, text='Check2', variable=self.Check2Var, style='TCheck2.TCheckbutton')
  12.         self.Check2.place(relx=0.041, rely=0.221, relwidth=0.62, relheight=0.099)
  13.         self.Check1Var = IntVar(value=0)
  14.         self.style.configure('TCheck1.TCheckbutton', font=('宋体',9))
  15.         self.Check1 = Checkbutton(self.LibList, text='Check1', variable=self.Check1Var, style='TCheck1.TCheckbutton')
  16.         self.Check1.place(relx=0.041, rely=0.095, relwidth=0.62, relheight=0.099)
  17.         self.LibNoteFont = Font(font=('宋体',9))
  18.         self.LibNote = Text(self.TabStrip1__Tab4, font=self.LibNoteFont)
  19.         self.LibNote.place(relx=0.666, rely=0.095, relwidth=0.299, relheight=0.763)
  20.         self.LibNote.insert('1.0','Library Note\n')
  21.         self.TabStrip1.add(self.TabStrip1__Tab4, text='Library')                           
复制代码
这个代码的问题在于还没有先定义Scrollbar就先在Canvas里面去绑定 yscrollcommand=self.ModTabVScroll.set,结果就会出现问题了。

这个问题一开始是没有的,我不清楚怎么跑出来的。后面一直都是这个有问题的顺序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP