当某些事件发生时,我需要将DISABLED
的状态从NORMAL
更改为Button
。
这是我的Button的当前状态,目前已被禁用:
self.x = Button(self.dialog, text="Download",
state=DISABLED, command=self.download).pack(side=LEFT)
self.x(state=NORMAL) # this does not seem to work
Anyonne可以帮我解决这个问题吗?
答案 0 :(得分:54)
您只需将按钮state
的{{1}}设置为self.x
:
normal
或
self.x['state'] = 'normal'
此代码将进入将导致启用Button的事件的回调。
此外,正确的代码应为:
self.x.config(state="normal")
self.x = Button(self.dialog, text="Download", state=DISABLED, command=self.download)
self.x.pack(side=LEFT)
中的方法pack
会返回Button(...).pack()
,您将其分配给None
。您实际上想要将self.x
的返回值分配给Button(...)
,然后在以下行中使用self.x
。
答案 1 :(得分:7)
我认为更改窗口小部件选项的快捷方法是使用configure
方法。
在您的情况下,它看起来像这样:
self.x.configure(state=NORMAL)
答案 2 :(得分:0)
这对我有用。我不确定为什么语法会有所不同,但是尝试激活,非活动,停用,禁用等的每种组合都非常令人沮丧。在小写的大写形式中,引号中的引号放在方括号中。出于某种原因,对我来说是成功的组合..与众不同?
import tkinter
class App(object):
def __init__(self):
self.tree = None
self._setup_widgets()
def _setup_widgets(self):
butts = tkinter.Button(text = "add line", state="disabled")
butts.grid()
def main():
root = tkinter.Tk()
app = App()
root.mainloop()
if __name__ == "__main__":
main()