当 False 时使 tkinter ttk checkbutton 为空

问题描述

我正在使用 Tkinter 制作一个简单的界面,并注意到当它们的 Checkbutton 值为 False 或未单击时,它会显示一个覆盖按钮的黑色方块,而不是简单地为空。示例:

Example

。我想要的只是在状态为 False 时使按钮完全为空,做了一些挖掘却找不到它。感谢您的时间和帮助!

这是有问题的代码

querlog = ttk.Checkbutton(window,text='Quero salvar o log',command=quer_salvar_log)
querarquivo = ttk.Checkbutton(window,text='Quero salvar o arquivo de som',command=quer_salvar_som)

解决方法

您应该将一个变量与复选按钮相关联,并且您需要确保该变量设置为与 offvalue 选项相同的值。 offvalue 默认为零。您还需要确保保留一个引用,以便垃圾收集器不会破坏变量(即:不要使用局部变量)

querlog_var = tk.StringVar(value=0)
querarquivo_var = tk.StringVar(value=0)

querlog = ttk.Checkbutton(window,text='Quero salvar o log',command=quer_salvar_log,variable=querlog_var)
querarquivo = ttk.Checkbutton(window,text='Quero salvar o arquivo de som',command=quer_salvar_som,variable=querarquivo_var)
,

我在不使用 variable= 时发现了同样的问题,所以这里是如何做到的:

Checkbutton(master,variable='',**kwargs)

您可以将 variable 属性设置为空字符串,这样就可以修复它