Как создать викторину в Tkinter с помощью кнопок - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь пройти тест, чтобы задать другой вопрос и загрузить ответы, связанные с этим вопросом, после нажатия кнопки.Он загружает первый вопрос, с одной кнопкой, которая имеет правильный ответ, и 3 кнопками с неправильным ответом (что предполагается сделать, так как это множественный выбор), но при нажатии кнопки новый вопрос не загружается.Он говорит, что идентификатор не определяется, когда я нажимаю кнопку.

Итак, как мне это зациклить, чтобы появился новый идентификатор и загрузился новый вопрос.Множественный выбор работает, это просто петля назад.

class Page2(Page):
    def __init__(self, *args, **kwargs):
        Page.__init__(self, *args, **kwargs)
        self.Question_Counter = 0
        self.Correct_Answers = 0
        self.getQuest
        self.AnswerQuestion

        self.ID = random.randint(1,100)
        QuestionSet.add(self.ID)
        self.QuestionAsked = self.getQuest(self.ID)
        QuestionSet.add(self.QuestionAsked)
        Answers = [self.GetAnswer(self.ID)]
        self.CorrectAnswer = self.GetAnswer(self.ID)
        for ID in range(3):
            new_id = random.randint(1,100)
            while new_id in Answers:
                new_id = random.randint(1,100)
            Answers.append(self.GetAnswer(new_id))
        self.OriginalAnswers = Answers[:]
        print(self.CorrectAnswer)
        print(self.GetAnswer(self.ID))

        l1 = tk.Label(self, text = self.QuestionAsked)
        l1.grid(row = 2, column = 2, pady = 100)

        l2 = tk.Label(self, text ="/50")
        l2.grid(row = 1, column = 3)

        myID = random.randint(0,3)
        b1 = tk.Button(self, text = Answers[myID], command = self.AnswerQuestion)
        b1.grid(row = 3, column = 1)
        del Answers[myID]

        myID = random.randint(0,2)
        b2 = tk.Button(self, text = Answers[myID], command = self.AnswerQuestion)
        b2.grid(row = 4, column = 1, pady = 10)
        del Answers[myID]

        myID = random.randint(0,1)
        b3 = tk.Button(self, text = Answers[myID], command = self.AnswerQuestion)
        b3.grid(row = 3, column = 3)
        del Answers[myID]

        b4 = tk.Button(self, text = Answers[0], command = self.AnswerQuestion)
        b4.grid(row = 4, column = 3, pady = 10)
        del Answers[0]

    def getQuest(self,ID):
        if self.Question_Counter < 50:
            RandomInt = random.randint(1,100)
            new_db = sqlite3.connect("QuestionsDatabase.db")
            c= new_db.cursor()
            return (c.execute("SELECT Question FROM Questions WHERE QuestionID = {}".format(ID)).fetchone()[0])
            self.Loading(self)

    def GetAnswer(self,ID):
        new_db = sqlite3.connect("QuestionsDatabase.db")
        c= new_db.cursor()
        return (c.execute("SELECT ANSWER FROM ANSWERS WHERE AnswerID = {}".format(ID)).fetchone()[0])  

    def AnswerQuestion(self):
        if self.CorrectAnswer == self.GetAnswer(self.ID):
            self.Correct_Answers += 1
        self.Question_Counter += 1
        self.getQuest(self,ID)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...