-1

フレームにカウントダウンを表示したかったのですが、カウンターを作成するには、背景を持つテキストまたはラベルまたはその他のウィジェットを使用する必要がありますが、フレームに数字のみを表示する必要があるため、別のウィンドウを作成することを考えました現在のフレームで、Toplevel() とgrab_setを使用して数秒後にフレームを破棄しようとしましたが、 countdown() の呼び出しと定義の記述が困難です。カウントダウンの数字をフレームに表示したいだけで、それらの数字の背景は透明にする必要があります。countdown() を呼び出し、新しいフレーム top.here に従ってカウントダウンを定義することに固執しています。私のコードでは、キャンバス上に数字を表示しようとしています

class ExampleApp(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.canvas = Canvas(self, width=2085, height=1080, bg='#020A2E')
        self.canvas.pack()
        top = Toplevel(self)
        top.grab_set()
        top.label = Label(self, text="", font='Arial 90 bold', fg='red',bg='black')
        top.label.place(x=100,y=100)
        top.wm_attributes("-transparentcolor", "black")
        top.remaining = 1
        self.countdown(3)
        top.grab_release()

    def countdown(self, remaining = None):
        if remaining is not None:
            self.remaining = remaining

        if self.remaining <= 0:
            self.label.configure(text="")
            self.label.destroy()
        else:
            self.top.label.configure(text="%d" % self.remaining)
            self.remaining = self.remaining - 1
            self.after(1000, self.countdown)
4

1 に答える 1