Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 有人知道如何引用我的Q吗?_User Interface_Python 2.7_Tkinter - Fatal编程技术网

User interface 有人知道如何引用我的Q吗?

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

我已经创建了一个数学游戏,当我加载第一个问题时,它很好,如果我得到正确的答案,分数会增加100,但当它加载下一个问题时,它会直接加载到旧问题上,分数不再增加

我的计数器也不能用来结束游戏

有人能帮忙吗

 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