首页 > 解决方案 > tkinter 上的 Checkbutton 无论如何都保留它的价值

问题描述

我正在尝试从 tkinter 上的 Checkbutton 获取值,但它保留了原始值。我已经尝试过无数论坛上人们所说的话,包括这个论坛,但没有任何效果,它只是保留了我用var.set(True)or赋予它的价值var.set(False)。顺便说一句,这个 chechbutton 在弹出窗口上,但它不是全局的,它只是在所述窗口上定义的。这是我的代码:

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()我得到初始值。请帮帮我:(谢谢你的建议。

标签: pythontkinter

解决方案


原因是因为 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))

推荐阅读