Как проверить состояние (включено / отключено) флажка в Python (tkinter) - PullRequest
0 голосов
/ 31 октября 2019

У меня есть программа, которую я пишу на Python, и у меня возникают проблемы с проверкой состояния флажка. Я НЕ хочу проверять, отмечен ли он или не отмечен, а скорее, если он отключен или включен.

В качестве фона у меня есть многочисленные флажки, которые я хочу отображать на экране, но на основе выбора пользователей вменю параметров я хочу, чтобы определенные флажки, чтобы включить или отключить. Хорошо, достаточно просто. Теперь к проблеме. У меня также есть две кнопки-переключатели, которые называются «выбрать ВСЕ» и «выбрать НЕТ»

Моя проблема в том, что когда я выбираю выбрать ВСЕ или выбрать НЕТ, он включает или отключает ВСЕ флажки, даже те, которые отключены.

Я не хочу публиковать весь код, потому что он довольно длинный, поэтому я опубликую фрагмент каждого раздела для справки, но буду очень признателен за любую помощь в этом. (ПРИМЕЧАНИЕ. Я жестко запрограммировал состояние контрольных кнопок в приведенном ниже коде для тестирования / упрощения, но они будут включены / отключены с помощью команды из меню параметров, как упомянуто выше. Я также включил только две контрольные кнопки, чтобы код не был такимlong)

Я провел большой поиск, но могу найти только информацию о том, как включить / отключить кнопку проверки и как проверить, проверена она или нет, но не о том, как проверить, отключена она или нет.

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)
...