免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
141 [报告]
发表于 2015-11-21 06:26 |只看该作者
回复 140# zzczx


    更新到1.5.1,https://github.com/cdhigh/tkinter-designer
    解决了你所提的几个问题,特别是代码顺序导致未定义先引用的问题。

论坛徽章:
0
142 [报告]
发表于 2015-11-22 18:33 |只看该作者
回复 141# cdhigh


    赞。多谢。祝越做越好。

论坛徽章:
0
143 [报告]
发表于 2015-11-23 16:39 |只看该作者
回复 141# cdhigh


    有个不知道是不是bug,很可能是我用的不对。如图:
图中IS6100_开头的那些行都是我用命令创建的Label,添加到notebook的Modules的tab上的Canvas,我预期随着Label行数的增加,Canvas关联的scrollBar应该会激活,这就可以下来来查看。但是如图所示,并没有起作用。
     请教一下,是我用法不对吗?这些label都是用relx,rely的相对坐标place上去的。

论坛徽章:
0
144 [报告]
发表于 2015-11-23 19:18 来自手机 |只看该作者
canvas的滚动和其他的控件不一样,tkinter的canvas可以认为是一个无限大的画布,所以默认情况下滚动条无法适配无限大的区域,就变为虚。
如果要滚动条激活,你还需要设置你需要的canvas大小(或者可以滚动查看的区域),就是设置scrollregion属性。
比如
canvas['scrollregion'] = (0, 0, 1000, 1000)

如果区域大小固定,也可以在tkinter designer界面上设置。

论坛徽章:
0
145 [报告]
发表于 2015-11-24 11:47 |只看该作者
回复 144# cdhigh


   
    多谢指教。
还有一个问题需要请教一下:
   我在gui界面需要选中checkbutton的时候调用一个带参数的函数,但怎么写都不对。
   如果是不带参数的话,直接command=FunctionName就好,带参数的话,
   写成command=FunctionName(para),虽然没有报语法错误,但是FunctionName看上去根本没有执行。
   不知道这个是怎么回事。

和你的软件没有关系,只是我对python不够了解,请帮忙指教一下。谢谢。
我居然没有发消息的权限,只好放在版面了。

论坛徽章:
0
146 [报告]
发表于 2015-11-24 12:03 |只看该作者
回复 145# zzczx


    解决了:
self.Pdk.update({pdkname:Checkbutton(self.PdkTabList,\
            text=pdkname,command=lambda :self.SetPdkNote(pdkname))})     
我之前用lambda一直写成:
self.Pdk.update({pdkname:Checkbutton(self.PdkTabList,\
            text=pdkname,command=lambda pdkname :self.SetPdkNote(pdkname))})     
结果一直不对。

论坛徽章:
0
147 [报告]
发表于 2015-11-26 15:24 |只看该作者
回复 141# cdhigh


    奇怪,canvas控件设置一模一样,为什么一个有黑边框,一个没有?它的relief属性有作用吗?怎么测试都不变。

论坛徽章:
0
148 [报告]
发表于 2015-11-26 15:29 |只看该作者
回复 147# zzczx


    后面为了一直,只好把highlightcolor和hightlightbackground全部设为同一个颜色。

这个工具用来了解各个空间的属性很不错啊。

论坛徽章:
0
149 [报告]
发表于 2015-11-26 19:10 |只看该作者
回复 141# cdhigh



    canvas的滚动条用起来不大对啊?

为何我创建的Checkbutton超出Canvas就看不到了?预期是继续创建,可以通过滚动条拉下来看到创建的Checkbutton. 设置了confine=True、False看起来也没有影响。

不知道是哪里用法有误。

论坛徽章:
0
150 [报告]
发表于 2015-11-26 21:48 |只看该作者
本帖最后由 cdhigh 于 2015-11-27 08:09 编辑

回复 149# zzczx


    Canvas是比较特殊的控件,

我不知道你是怎么在canvas上创建的控件,是不是用place()?如果用place的话,则仅是能显示而已,canvas并没有管理到此控件对象,如果需要canva管理,则需要调用canvas的create_window()
比如:
  1. canvas.create_window(x, y, anchor=NW, window=yourwidget)
复制代码
还有,关于滚动区域设置,scrollregion设置除了给定一个确定的值之外,也可以使用bbox()自动自适应计算,这样可能方便一些。
  1. canvas['scrollregion'] = canvas.bbox(ALL)
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP