User interface 有人知道如何引用我的Q吗?
我已经创建了一个数学游戏,当我加载第一个问题时,它很好,如果我得到正确的答案,分数会增加100,但当它加载下一个问题时,它会直接加载到旧问题上,分数不再增加 我的计数器也不能用来结束游戏 有人能帮忙吗User interface 有人知道如何引用我的Q吗?,user-interface,python-2.7,tkinter,User Interface,Python 2.7,Tkinter,我已经创建了一个数学游戏,当我加载第一个问题时,它很好,如果我得到正确的答案,分数会增加100,但当它加载下一个问题时,它会直接加载到旧问题上,分数不再增加 我的计数器也不能用来结束游戏 有人能帮忙吗 def do_question(self): ## def create_widgets(self): #counter here if over 5 then die counter
def do_question(self):
## def create_widgets(self):
#counter here if over 5 then die
counter = 0
counter += 1
#counter + 1
if counter > 5:
import ITRIED
SQL = 'SELECT * FROM tblQuestion'
cursor = Databaseconnector.SELECT(SQL)
rows = cursor.fetchall()
random_row = random.choice(rows)
print random_row.QuestionID, random_row.Question, random_row.Hint, random_row.A1, random_row.A2, random_row.A3, random_row.A4, random_row.CorrectAnswer
self.a1button = Tkinter.Button(self, background="blue",foreground="white", text = (random_row.A1), command = self.QUESTION1)
self.a1button.grid(row = 9, column = 1, sticky = 'W')
问题核查员:
def QUESTION1(self):
score = int(self.label7['text'])
if self.a1button['text'] == self.label6['text']:
tkMessageBox.showinfo("CORRECT", "WELL DONE")
score = +100
self.do_question()
else:
tkMessageBox.showinfo("INCORRECT", "YOU GOT IT WRONG :/")
label7 = +100
self.do_question()
self.label7.config(text=str(score))
您的计数器永远不会超过5,因为每次调用do_问题时,您都会将其重置为零。另外,按照编码方式,计数器是一个局部变量。您需要做的第一件事是将计数器设置为实例变量(即:self.counter),这样它就不再是单个函数的局部变量 score变量也是如此——它是函数的局部变量,而不是实例变量 至于为什么它“直接在旧的上面加载”,那是因为你告诉它这样做。在do_问题中,您使用网格将按钮放置在第9行第1列。您永远不会删除第9行第1列中可能已经存在的内容。在显示新问题之前,您应该对上一个问题调用
grid\u remove
或grid\u forget