Флажок Tkinter с ошибками оператора - PullRequest
0 голосов
/ 09 февраля 2020

Возникли затруднения при использовании оператора if с кнопками. Я пробовал это во многих других вариантах: Как получить состояние Checkbutton, когда оно выбрано?

uvcheckvar = tk.IntVar()
uvcheckvar.set(0)

c1 = tk.Checkbutton(leftframeobjcol, text="UV", variable = uvcheckvar,
    command=reset) #I've tried setting their onvalue = 1 and offvalue = 0 as well
c1.pack()

if checkvar.get() == 1: #or I've tried 'if checkvar.get() and checkvar == 1
    print("test")

Кажется, по какой-то причине не работает. Моя цель - заставить его напечатать что-нибудь, как только я нажму на чекбокс (тест на данный момент. Долгосрочное стремление изменить массив). Я не могу найти решение, так как приведенная выше ссылка не решает мою проблему. Конечно, это легко исправить как-нибудь? Я что-то неправильно понимаю?

1 Ответ

1 голос
/ 09 февраля 2020

Что вам нужно сделать, это связать командную функцию, которая получает переменную, когда флажок установлен. Как это:

import tkinter as tk

root = tk.Tk ()

is_checked = tk.IntVar ()
def check_checkbox () :
    if is_checked.get () == 1:
        print ("test success")

c1 = tk.Checkbutton(root, text="UV", onvalue = 1, offvalue = 0,
        variable = is_checked, command = check_checkbox)
c1.pack()

root.mainloop ()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...