【发布时间】:2017-06-06 11:10:51
【问题描述】:
当全局变量a 更改其值时,我如何调用函数change_label?使用change_variable,我正在尝试模拟变量的实际变化(单击按钮时变量会发生变化)。
from tkinter import *
a = 3
class Application(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.master = master
self.button = Button(self.master, text='Change Variable', command=self.change_variable)
self.button.grid(row=0)
self.label = Label(self.master, text='Test')
self.label.grid(row=1)
def change_label(self):
self.label.config(bg='Red', fg='Yellow')
def change_variable(self):
global a
a = 1
def main():
root = Tk()
Application(root)
root.mainloop()
if __name__ == '__main__':
main()
【问题讨论】:
-
如果没有问题,可以使用轻量级线程定期监控值。
-
好吧,你为什么不在所有改变
a的地方打电话给change_label? -
为什么不在对象上使用属性而不是全局属性,那么您可以从 setter 调用您的函数。