Как уничтожить ярлык одного класса на другой класс в tkinter? - PullRequest
0 голосов
/ 28 апреля 2020
from tkinter import *
master = Tk()
master.title("Add Questions")
master.geometry("800x600")
master.geometry("+275+70")
master.configure(bg="#D3D3D3")


class timer:
    def __init__(self,root):
        self.root=root
        self.text = ""
        self.second=10
        self.l = Label(root,font=("Calibri (Body)",30),bg="#D3D3D3",fg="#333300")
        self.l.place(relx=0.9,rely=0.05,anchor=CENTER)

    def update(self):
        if self.second>0:
            m,s=divmod(self.second,60)
            self.text=str(m).zfill(2)+":"+str(s).zfill(2)
            self.l.configure(text=self.text)
            self.second=self.second-1
            self.l.after(1000,self.update)
        else:
            self.l.configure(text="Time off!",fg="red",font=("Calibri (Body)",70))
            self.l.place_configure(relx=0.5,rely=0.5,anchor=CENTER)
            self.l.after(1000,lambda: questions(master))


class questions:
    def __init__(self,root):

a=timer(master)
a.update()

master.mainloop()

Это мой код ... таймер класса: для обратного отсчета. В вопросах класса: я хочу уничтожить self.l метку класса timer :. Но я не знаю, как использовать атрибут self.l в class questions. Что мне делать?

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете использовать метод .destroy().

Это делает любой виджет исчезающим, и вы не можете использовать его снова.

Итак, в вашем примере это будет self.l.destroy().

Что касается вашего класса, второй класс может наследовать первый класс.

Для этого обновите class следующим образом:

class questions(timer):.

И это будет ваш класс таймера:

class timer(Object):.

Читайте о наследовании классов в python.

Надеюсь, это поможет!

...