【发布时间】:2014-01-05 08:05:50
【问题描述】:
我在 Tkinter/Python 中创建了一个十题多项选择测验。我创建了一个类来存储所有按钮,然后创建了十个其他类来存储出现在子窗口中的每个问题,该问题作为标签和单选按钮/复选按钮。对于每个问题,当用户按下“Enter”时,程序会将他们的选择与正确的回答者进行比较,并在必要时加 1 分。如何使变量“分数”可用于程序中的所有内容(即每个班级)?我必须在类之间传递分数的值吗?
class Question_5_Window(tk.Toplevel):
'''A simple instruction window'''
def __init__(self, parent):
tk.Toplevel.__init__(self, parent)
self.text = tk.Label(self, width=100, height=4, text = "5) What would you do if you were walking to class and you saw a first year crying? Tick all correct answers.")
self.text.pack(side="top", fill="both", expand=True)
question_5_Var1 = IntVar()
question_5_Var2 = IntVar()
question_5_Var3 = IntVar()
A_5 = Checkbutton(self, text = "Keep walking", variable = question_5_Var1, onvalue = 1, offvalue = 0, height=5, width = 20)
A_5.pack()
B_5 = Checkbutton(self, text = "Take them to guidance", variable = question_5_Var2, onvalue = 1, offvalue = 0, height=5, width = 20)
B_5.pack()
C_5 = Checkbutton(self, text = "Talk to them to resolve issue", variable = question_5_Var3, onvalue = 1, offvalue = 0, height=5, width = 20)
C_5.pack()
def calculate_score():
if (question_5_Var2.get() == 1) and (question_5_Var3.get() == 1) and not question_5_Var1.get():
print("calculate score has worked")
score = score + 1
else:
print("not worked")
return score
Enter_5 = Button(self, text= "Enter", width=10, command = calculate_score)
Enter_5.pack()
return score
【问题讨论】:
-
你有示例代码吗?
-
是的,我已经编辑了问题
-
@user3056786 我认为这需要一些讨论/修订/编辑。任何想帮忙的人,也许你可以使用this chat room。
-
@user3056786 如果它对您有用,请接受答案,或者更新无效的内容,以便解决这个问题。如果您希望您的问题对与您有类似问题的其他人有所帮助,您可能希望更新您的问题以遵循我们讨论的指南。
-
是的,您提供的解决方案 DID 工作
标签: python class variables tkinter