我正在为学校做一个项目,但我被困在创建多个复选框的时候。我复制/粘贴了一些代码并乱用它,试图获得两个复选框,但我无法这样做。复选框使用相同的变量来勾选/取消勾选(我知道这一点)。我无法找到获取第二个变量的方法,以允许第二个复选框被勾选或取消勾选,具体取决于第一个是未勾选还是勾选。
from Tkinter import *
root = Tk()
root.title("Payroll")
root.resizable(width=FALSE, height=FALSE)
class App:
def __init__(self,master):
root.minsize(width=500, height=500)
root.maxsize(width=500, height=500)
self.var = IntVar()
frame = Frame(master)
frame.grid()
f2 = Frame(master,width=200,height=100)
f2.grid(row=0,column=1)
btnSalary = Checkbutton(frame,text='Salary',variable=self.var,command=self.fx)
btnWage = Checkbutton(frame,text='Wage',variable=self.var,command= self.fx)
btnSalary.grid(row=0,column=0)
btnWage.grid(row=2,column=0)
msg1="Wage"
self.v= Message(f2,text=msg1)
msg2="Salary"
self.v= Message(f2,text=msg2)
def fx(self):
if self.var.get():
self.v.grid(column=1,row=0,sticky=N)
else:
self.v.grid_remove()
app = App(root)
root.mainloop()
答案 0 :(得分:0)
Checkbuttons和Radiobutton具有非常具体的用例:
onvalue
和offvalue
(通常为True
和False
,回答问题&#34;是否已检查&#34;)。< / LI>
如果您的情况如此,您似乎希望用户选择 Salary 或 Wage。如果是这样,您需要使用Radiobuttons,而不是Checkbuttons。使用Radiobuttons时,所有作为一个选项的选项必须使用相同的textvariable
。这就是Tkinter知道它们作为一组工作的方式。此外,您必须为每个Radiobutton提供一个不同的值,这样当您获得该值时,您将知道选择了哪一个。
在您的情况下,小部件可能如下所示:
btnSalary = Radiobutton(..., variable=self.var,value="salary", ...)
btnWage = Radiobutton(...,variable=self.var, value="wage", ...)