我有一个用 Python 编写的程序,但无法检查复选框的状态。我不想检查它是选中还是未选中,而是检查它是否被禁用或启用。
作为背景,我有许多想要在屏幕上显示的复选框,但是根据用户在选项菜单中的选择,我希望启用或禁用某些复选框。好吧,很容易。现在来解决问题。我还有两个按钮单选按钮,称为“全选”和“全选”
我的问题是,当我选择全选或全选时,它会启用或禁用所有复选框,即使是那些被禁用的复选框。
我不想发布整个代码,因为它很长,所以我将发布每个部分的片段以供参考,但非常感谢任何帮助。(注意:我在下面的代码中硬编码了检查按钮的状态以进行测试/简化,但它们将通过上面提到的选项菜单中的命令启用/禁用。我还只包含了两个检查按钮,因此代码不是这样长)
我做了很多搜索,但只能找到有关如何启用/禁用检查按钮以及如何检查它是否被检查的信息,但不能找到如何检查它是否被禁用的信息。
def select_all():
var1.set(1), var2.set(1), var3.set(1), var4.set(1), var5.set(1), var6.set(1), var7.set(1), var8.set(1), var9.set(
1), var10.set(1)
def select_none():
var1.set(0), var2.set(0), var3.set(0), var4.set(0), var5.set(0), var6.set(0), var7.set(0), var8.set(0), var9.set(
0), var10.set(0)
r = tk.Tk()
r.title('Title')
checkFrame = Frame(r)
checkFrame.pack()
var1 = IntVar()
C1 = Checkbutton(checkFrame, text='Option 1', state='disable', variable=var1)
C1.grid(row=0, column=0, sticky=W, pady=4, padx=15)
var2 = IntVar()
C2 = Checkbutton(checkFrame, text='Option 2', state='normal', variable=var2)
C2.grid(row=0, column=1, sticky=E, pady=4, padx=15)
selectAllCheck = IntVar()
Radiobutton(selectAllFrame, text='Select ALL', indicatoron=0, width=15, variable=selectAllCheck, value=1,
command=select_all).grid(row=0, column=0, sticky=W, pady=10)
Radiobutton(selectAllFrame, text='Select NONE', indicatoron=0, width=15, variable=selectAllCheck, value=2,
command=select_none).grid(row=0, column=1, sticky=E, pady=10)