我在Tkinter中有一个复选框。我希望它始终保持选中状态,但禁用复选框会破坏 GUI 应用程序的外观。我想将其状态保持为正常,如果用户尝试取消选中它,该框将保持选中状态,或者立即重新选中。
global ghistory
ghistory = IntVar()
cc = Checkbutton(frame3, text="History", variable=ghistory)
cc.select()
cc.pack()
我该怎么做?
添加一个将变量设置为 True 的函数。一个快速的lambda函数可以解决问题:
cc=tk.Checkbutton(frame3,text="History",variable=ghistory, command=lambda:ghistory.set(1))
或者您可以使用 select
命令:
cc=tk.Checkbutton(frame3,text="History",variable=ghistory)
cc['command'] = cc.select
使用 .cget('state') 查看按钮是否被禁用...
self.widget_checkbutton = tk.Checkbutton(self, variable=self.some_variable, command=lambda:self.stay_checked())
def stay_checked(self):
if self.widget_checkbutton.cget('state') == 'disabled':
self.widget_checkbutton.select()
else:
self.widget_checkbutton.deselect()
#this will only let the button be checked if widget is active.
(所以基本上,如果某些小部件被禁用...您告诉复选框保持不变。否则,如果某些小部件正常,则允许该复选框正常工作...选择。。。取消选择...