重绘小部件与更新

时间:2015-08-17 22:13:47

标签: python-3.x tkinter

我们说我有一个按钮。在它的构造函数中,我使用变量来提供值(在运行之前我为这些变量设置了一些默认值),因此以后可以更改它们,并且在程序中可以修改GUI的外观。我需要的是每当我更改这些值时更新小部件。 例如,我有一些选项可以更改某种颜色,我按下它调用构造函数中定义的某个命令的按钮,更改颜色变量,然后需要更新。这里它说update()根据需要重绘小部件。我如何告诉它我需要重新绘制小部件? http://effbot.org/tkinterbook/widget.htm 我可能会误认为重绘实际意味着什么。无论如何,我需要用新值更新它。我有一个非常愚蠢的解决方案,那就是摧毁一切并重建它。我觉得有一种更聪明的做事方式。

1 个答案:

答案 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