Флажок на tkinter сохраняет свою ценность независимо от того, что - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь получить значение из Checkbutton на tkinter, но оно сохраняет первоначальное значение. Я пробовал то, что люди говорят на бесчисленных форумах, включая этот, но ничего не работает, он просто сохраняет значение, которое я ему даю с var.set(True) или var.set(False). Кстати, эта кнопка находится во всплывающем окне, но она не глобальная, она просто определена в указанном окне. это мой код:

import tkinter as tk 
import tkinter.ttk as ttk

root = tk.Tk()
root.geometry('500x500')

var = tk.BooleanVar()
var.set(False)
startup = tk.Checkbutton(root, variable=var, onvalue=True, offvalue=False , text = "test")

когда я использую var.get(), я получаю начальное значение. помогите мне плз :( Спасибо в совет.

1 Ответ

0 голосов
/ 03 мая 2020

Причина в том, что Checkbutton требует функцию обратного вызова для изменения состояния кнопки.

def toggle(button):
    if button.get() is True:
        button.set(True)
    else:
        button.set(False)

Функция обратного вызова будет использоваться при создании кнопки Checkbutton

startup = tk.Checkbutton(root, variable=var, text = "test",
            command=lambda button=var: toggle(button))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...