Python Tkinter,如何禁用类中的按钮?

时间:2014-05-02 10:36:02

标签: python python-3.x tkinter

我已经看到很多解释如何禁用启用按钮但不涉及类时。此处的错误位于“button_1.config ...”行,错误消息是未定义button_1。我认为这是因为它采用了不同的方法,但我不确定如何从不同的方法中禁用按钮。任何帮助表示赞赏。

from tkinter import *

class menu:
    def __init__(self, master):
        self.master = master
        button_1 = Button(self.master, text = 'test', command = self.correct).pack()
    def correct(self):
        button_1.config(state = DISABLED)

def window():
    root = Tk()
    menu(root)
    root.mainloop()

if __name__ == '__main__':
    window()

1 个答案:

答案 0 :(得分:1)

如果您要在类中的方法之间访问该按钮,则该按钮必须是实例变量。只需在其前面添加self.即可。它也需要在一个单独的行上packed,否则实例变量self.button_1将返回None:

class menu:
    def __init__(self, master):
        self.master = master
        self.button_1 = Button(self.master, text = 'test', command = self.correct)
        self.button_1.pack()
    def correct(self):
        self.button_1.config(state = DISABLED)