我正在尝试选择或不选择一系列复选框 - 然后当用户按下按钮时,分配给复选框的字母应添加到输入的字符串然后打印。
我遇到两个主要问题;
当用户按下复选框时,会选中所有复选框。
我想默认是所有这些都经过检查,但我找不到如何做到这一点。如果无法回答这个问题,那么它不如第一个问题重要,因此并不重要。
到目前为止,这是我的代码;
导入Tkinter
课程菜单():
def __init__(self,NewData):
self.SCREEN = Tkinter.Tk()
self.NewData = NewData
self.Selection = {"A":1,"B":1,"C":1,"D":1}
self.A = Tkinter.Checkbutton(self.SCREEN,text="A",variable=self.Selection["A"]).pack()
self.B = Tkinter.Checkbutton(self.SCREEN,text="B",variable=self.Selection["B"]).pack()
self.C = Tkinter.Checkbutton(self.SCREEN,text="C",variable=self.Selection["C"]).pack()
self.D = Tkinter.Checkbutton(self.SCREEN,text="D",variable=self.Selection["D"]).pack()
self.BtnFinish = Tkinter.Button(self.SCREEN,text="Finish selection",command=self.FinishSelection)
self.BtnFinish.pack()
self.SCREEN.mainloop()
def FinishSelection(self):
SelectionString = ""
for n in self.Selection:
if self.Selection[n]:
SelectionString+=n
self.NewData+="\nQuestions\n"+SelectionString+"\n"
print self.NewData
MENU("&#34)
如果它很重要,那就是Python 2.7.3。另外,我要感谢,并向那些可能必须指出非常明显/基本的东西的人道歉,作为Tkinter的初学者,我还没有意识到。
答案 0 :(得分:1)
您必须使用其中一个Tkinter对象StrintVar
,IntVar
,BooleanVar
或DoubleVar
正常(StringVar
)作为{{1参数。你不能使用普通的python变量。您必须为每个变量创建一个单独的变量。
例如:
variable
然后,要获得值,您需要使用self.Selection = {"A": Tkinter.BoolVar(), "B": Tkinter.BoolVar(), ...}
self.Selection["A"].set(True)
...
方法:
get