作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Tkinter 中创建多项选择测验,并使用单选按钮和复选按钮。对于这个问题,我使用单选按钮。如何从单选按钮获取值,以便在 if 语句“计算分数”中比较它们?计算机返回:“calculate_score_1() 仅接受 1 个参数(给定 0 个)”
另外,如何在类之间传递变量?我有十个问题的十个类,但希望所有的类都能够在用户得到正确答案时在分数上加 1 时访问变量“分数”。
class Question_1_Window(tk.Toplevel):
'''A simple instruction window'''
def __init__(self, parent):
tk.Toplevel.__init__(self, parent)
self.text = tk.Label(self, width=75, height=4, text = "1) Do you have the time to do at least twenty minutes of prefect duty each week?")
self.text.pack(side="top", fill="both", expand=True)
question_1_Var = IntVar() #creating a variable to be assigned to the radiobutton
Yes_1 = Radiobutton(self, text = "Yes", variable = question_1_Var, value=1, height=5, width = 20)
Yes_1.pack() #creating 'yes' option
#Here we are assigning values to each option which will be used in the validation
No_1 = Radiobutton(self, text = "No", variable = question_1_Var, value=2, height=5, width = 20)
No_1.pack() #creating 'no' option
def calculate_score_1(self):
Enter_1.config(state="disabled")
#self.question_1.config(state="disabled")
if (question_1_Var.get() == 1) and not (question_1_Var.get() == 2):
print("calculate score has worked") #test lines
#score = score + 1
else:
print("not worked") #testlines
Enter_1 = Button(self, text= "Enter", width=10, command = calculate_score_1)
Enter_1.pack()
最佳答案
calculate_score_1
不是实例的方法,而是在 __init__
方法内部定义的。因此,该方法不应具有 self 参数。删除该参数,然后它应该可以工作。如果您需要它(您似乎不需要),您仍然可以使用外部 __init__
方法的 self
参数。
如果您想从另一个类(或者实际上是同一类的另一个方法)访问score
,您必须将其定义为,使其成为实例的成员self.score = ...
。然后您可以像这样访问它:your_question_1_window_instance.score
。
最后,如果您有“十个问题的十个类”,您应该尝试为所有这些问题找到一些共同点,并创建一个通用的父类(super class),甚至一个可以参数化以适应所有问题的类。您只需要标题、类型(选择一个/选择多个)和答案列表,以及哪些答案是正确的。其他一切——创建复选框、检查答案等——应该始终相同。
关于python - 如何从 tkinter 中的单选按钮获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637507/
我是一名优秀的程序员,十分优秀!