我们说我有一个按钮。在它的构造函数中,我使用变量来提供值(在运行之前我为这些变量设置了一些默认值),因此以后可以更改它们,并且在程序中可以修改GUI的外观。我需要的是每当我更改这些值时更新小部件。 例如,我有一些选项可以更改某种颜色,我按下它调用构造函数中定义的某个命令的按钮,更改颜色变量,然后需要更新。这里它说update()根据需要重绘小部件。我如何告诉它我需要重新绘制小部件? http://effbot.org/tkinterbook/widget.htm 我可能会误认为重绘实际意味着什么。无论如何,我需要用新值更新它。我有一个非常愚蠢的解决方案,那就是摧毁一切并重建它。我觉得有一种更聪明的做事方式。
答案 0 :(得分:1)
所有小部件都有一个configure
方法,可以调用该方法来更改其任何属性。您所要做的就是保持对窗口小部件的引用,并调用方法:
def update_the_widgets():
the_label.configure(background="red")
a_button = tk.Button(..., command=update_the_widgets)
the_label = tk.Label(..., background="green")
如果使用面向对象的编码风格,这会容易得多。否则这些引用必须是全局变量。
当您的GUI编码正确时,您几乎不需要致电update
。