检查类Var是否发生

2024-04-19 21:47:18 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想做一个简单的选择题测验,我想让它面向对象。我已经创建了一个类,在这个类中可以对一个问题进行建模,但我希望第一个问题得到回答 我想从第二个问题开始,但我已经尝试了一个类var更改,但没有任何效果

我的代码:

import tkinter
from tkinter import *

root = Tk()
canvas = Canvas(root, width=500, height=500)
canvas.pack()

class Window:
    def __init__(self, root, canvas, question, a, b, c, correct):
        self.root = root
        self.canvas = canvas
        self.question = question
        self.answerA = a
        self.answerB = b
        self.answerC = c
        self.answer = correct
        self.final = False

        if self.answer == 1:
            self.canvas.tag_bind('A', '<Button 1>', self.correct)
            self.canvas.tag_bind('B', '<Button 1>', self.wrong)
            self.canvas.tag_bind('C', '<Button 1>', self.wrong)
        elif self.answer == 2:
            self.canvas.tag_bind('A', '<Button 1>', self.wrong)
            self.canvas.tag_bind('B', '<Button 1>', self.correct)
            self.canvas.tag_bind('C', '<Button 1>', self.wrong)
        elif self.answer == 3:
            self.canvas.tag_bind('A', '<Button 1>', self.wrong)
            self.canvas.tag_bind('B', '<Button 1>', self.wrong)
            self.canvas.tag_bind('C', '<Button 1>', self.correct)

        self.canvas.tag_bind('Again', '<Button 1>', self.redirect)
        self.canvas.tag_bind('Correct', '<Button 1>', self.redirect)

    def draw(self):
        self.canvas.delete(ALL)
        self.canvas.create_text(250, 125, text=self.question, font=('Helvetica', 20))

        self.canvas.create_rectangle(100, 250, 150, 300, fill='Black', activefill='Orange', tags='A')
        self.canvas.create_rectangle(225, 250, 275, 300, fill='Black', activefill='Orange', tags='B')
        self.canvas.create_rectangle(350, 250, 400, 300, fill='Black', activefill='Orange', tags='C')

        self.canvas.create_text(125, 350, text=self.answerA, font=('Helvetica', 15), width=100)
        self.canvas.create_text(250, 350, text=self.answerB, font=('Helvetica', 15), width=100)
        self.canvas.create_text(375, 350, text=self.answerC, font=('Helvetica', 15), width=100)

    def correct(self, event):
        self.canvas.delete(ALL)
        self.canvas.create_text(250, 125, text='Correct', font=('Helvetica', 20))

        self.canvas.create_rectangle(125, 250, 375, 400, fill='Black', activefill='Orange', tags='Correct')
        self.right = True
        self.wrongg = False

    def wrong(self, event):
        self.canvas.delete(ALL)
        self.canvas.create_text(250, 125, text='Wrong', font=('Helvetica', 20))

        self.canvas.create_rectangle(125, 250, 375, 400, fill='Black', activefill='Orange', tags='Again')
        self.wrongg = True
        self.right = False

    def redirect(self, event):
        print('Redirecting...')
        if self.wrongg == True:
            print('Drawing...')
            self.draw()
        elif self.correct == True:
            self.final = True

questionOne = Window(root, canvas, 'test', 'a', 'b', 'c', 3)
questionOne.draw()


root.mainloop()

Tags: textselfbinddeftagcreatebuttonroot