为什么默认情况下我的ttk.Checkbuttons显示被阻止?

问题描述

美好的一天。

我正在尝试为学校作业创建一个选项选择菜单

我正在使用Python 3.7.2主题的Tkinter库,以便正确显示此程序。但是,我在让ttk.Checkbutton()小部件正确显示时遇到一些问题。但是,当Checkbutton()认设置为不选中时,它在按钮内显示一个黑色正方形。我已经确认该黑色正方形表示错误的值,因为当我单击它时它会显示真实的校验。但是,当我取消选中它时,它变为空白而不是返回黑色方形状态。 我已经用相同的问题检查了BooleanVar()和Intvar()值的问题。

以下是功能代码摘录:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("Order Manager")

menu__pizza_1_count = Intvar()
menu__pizza_1_count.set(0)
menu__pizza_1_cheese = BooleanVar()
menu__pizza_1_cheese.set(False)
menu__pizza_1_bacon = BooleanVar()
menu__pizza_1_bacon.set(False)

menu__pizza_1_label = ttk.Label(root,text="A Shrubbery")
menu__pizza_1_label.grid(row=0,column=0,columnspan=2,padx=5,pady=5)
menu__pizza_1_price = ttk.Label(root,text="$8.50")
menu__pizza_1_price.grid(row=1,columnspan=1,pady=5)
menu__pizza_1_current = ttk.Label(root,textvariable=menu__pizza_1_count)
menu__pizza_1_current.grid(row=1,column=1,pady=5)
menu__pizza_1_cheese = ttk.Checkbutton(root,text="Cheese",variable=menu__pizza_1_cheese,offvalue=False,onvalue=True)
menu__pizza_1_cheese.grid(row=2,pady=5)
menu__pizza_1_bacon = ttk.Checkbutton(root,text="Bacon",variable=menu__pizza_1_bacon,onvalue=True)
menu__pizza_1_bacon.grid(row=2,pady=5)
menu__pizza_1_increase = ttk.Button(root,width=7,text="+") #add count COMMAND
menu__pizza_1_increase.grid(row=3,pady=5)
menu__pizza_1_decrease = ttk.Button(root,text="-") #decrease count COMMAND
menu__pizza_1_decrease.grid(row=3,pady=5)

[这就是我最终的结果] [1]

有人对如何获取它有任何建议吗,认情况下会显示为空白吗?

关于, 艾略特 [1]:https://i.stack.imgur.com/DfzMT.png

解决方法

您的复选框名称与变量名称相同。如果使用其他名称,则复选框可以正常工作。

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("Order Manager")

vmenu__pizza_1_count = IntVar()
vmenu__pizza_1_count.set(0)
vmenu__pizza_1_cheese = BooleanVar()
vmenu__pizza_1_cheese.set(False)
vmenu__pizza_1_bacon = BooleanVar()
vmenu__pizza_1_bacon.set(False)

menu__pizza_1_label = ttk.Label(root,text="A Shrubbery")
menu__pizza_1_label.grid(row=0,column=0,columnspan=2,padx=5,pady=5)
menu__pizza_1_price = ttk.Label(root,text="$8.50")
menu__pizza_1_price.grid(row=1,columnspan=1,pady=5)
menu__pizza_1_current = ttk.Label(root,textvariable=vmenu__pizza_1_count)
menu__pizza_1_current.grid(row=1,column=1,pady=5)
menu__pizza_1_cheese = ttk.Checkbutton(root,text="Cheese",variable=vmenu__pizza_1_cheese,offvalue=False,onvalue=True)
menu__pizza_1_cheese.grid(row=2,pady=5)
menu__pizza_1_bacon = ttk.Checkbutton(root,text="Bacon",variable=vmenu__pizza_1_bacon,onvalue=True)
menu__pizza_1_bacon.grid(row=2,pady=5)
menu__pizza_1_increase = ttk.Button(root,width=7,text="+") #add count COMMAND
menu__pizza_1_increase.grid(row=3,pady=5)
menu__pizza_1_decrease = ttk.Button(root,text="-") #decrease count COMMAND
menu__pizza_1_decrease.grid(row=3,pady=5)

root.mainloop()

启动输出

Pizza

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...