本帖最后由 dori233 于 2017-6-13 17:52 编辑
刚好这几天学了tk
看得出来LZ的意图就是GUI在运行中,程序运行然后GUI的界面更新内容.
分享点经验.
gui程序啊,在你写了mainloop这句以后,GUI就进入了循环状态了.
它只接受事件.
所以想要改变gui程序,必须要在mainloop之前设计事件.
让事件去驱动界面获得改变.
小小一段实例:
- class Gui(object):
-
- def __init__(self):
- self.master = Tk()
- self.text = Entry(self.master, text='')
- # 设置布局
- self.button = Button(self.master, text='开始', command=self.get_text)
- self.button.pack()
- self.text.pack()
- # mainloop 也可以搞成外部加上,加上mainloop后整个GUI就进入了循环状态了
- self.master.mainloop()
- def get_text(self):
- text = test()
- self.text.insert(INSERT, text)
- def test():
- return '你好啊'
- gui = Gui()
复制代码
按钮button 我绑定了一个方法 get_text
而get_text 方法里面 调用了test()这个函数,
获取返回的文字然后添加到Entry中去...
然而实际中,如果你想随着 其他函数运行 导致某些值发生变化,你想要用GUI把这些变化显示出来.
你也可以制造个事件专门去监视那个值值得变化.
after是个不错的选择,记住千万不要在GUI程序里加while
什么占位啊,方框大小啊,拉杆条啊没做,不过只想说明一点
想在GUI中更新内容,你必须制造事件方法,事件方法必须加到mainloop()前
当然你也可以写完整条程序,然后最后才加入mainloop()