【发布时间】:2015-06-18 22:23:28
【问题描述】:
我是 Python 新手,甚至是 GUI 编程新手。
我有一个按钮和两个旋转框,我想在单击开始按钮后禁用它们。 我用谷歌搜索了 5 种不同的方法来禁用 Tkinter 按钮,但似乎都没有。从理论上讲,旋转框应该以同样的方式被禁用,但我只是没有任何运气。 对整个 GUI 感到非常沮丧。
self.gps_com 和 self.arduino_com 是两个旋转框
如您所见,我尝试使用update() 作为按钮,但它不起作用。我已经看到在所有大写字母、首字母大写字母和引号的不同变体中使用 disabled 的代码变体。当前的语法不会从 Spyder 发出警告/错误。
我认为找到这个问题的答案很容易,但我已经研究了几个小时了。
def OnButtonClickStart(self):
self.labelVariable.set( self.entryVariable.get())
self.entry.focus_set()
self.entry.selection_range(0, Tkinter.END)
self.button_start.config(state = 'DISABLED')
self.button_start.update()
self.gps_com.config(state = 'DISABLED')
self.arduino_com.config(state = 'DISABLED')
【问题讨论】:
-
您确定 Spyder 发行版支持您尝试使用的功能吗?
-
如果你还没有尝试过,请尝试
Tkinter.DISABLED或"disabled"(全部小写带引号[单双不重要])。 -
您是否 100% 确定该回调已实际执行?尝试在其中添加一些
print声明。此外,该按钮是否触发了任何可能阻塞 UI 的长时间运行的操作? -
我注释掉了除 GUI 内容之外的所有其他代码。我正在确保正如你所建议的那样它没有在某个地方被阻止。当前的代码迭代只是带有几个按钮和两个旋转框的 GUI 窗口,我试图通过单击“开始”按钮来禁用它们。