Python 3.x t打开两扇窗户

Python 3.x t打开两扇窗户,python-3.x,tkinter,Python 3.x,Tkinter,在进行一些学习python/tkinter的活动时,我遇到了以下问题: -我希望在特定屏幕(1280x720)中进行可见倒计时,但如果从以下代码中删除第10行,则无法使其工作,这将导致第二个窗口打开: from future.moves import tkinter top=tkinter.Tk() HEIGHT=720 WIDTH=1280 canvas = tkinter.Canvas(top, height=HEIGHT, width=WIDTH) canvas.pack() class

在进行一些学习python/tkinter的活动时,我遇到了以下问题:

-我希望在特定屏幕(1280x720)中进行可见倒计时,但如果从以下代码中删除第10行,则无法使其工作,这将导致第二个窗口打开:

from future.moves import tkinter
top=tkinter.Tk()
HEIGHT=720
WIDTH=1280
canvas = tkinter.Canvas(top, height=HEIGHT, width=WIDTH)
canvas.pack()

class Tempo(tkinter.Tk):
    def __init__(self):
        tkinter.Tk.__init__(self)
        self.label = tkinter.Label(top,width=10, font="Verdana 12 bold",bg="white")
        self.label.place(relwidth=0.18,relheight=0.04,relx=0.5-0.09,rely=0.3-0.02)
        self.remaining = 0
        self.countdown(10)

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

        if self.remaining <= 0:
            self.label.configure(text="time's up!")
        else:
            self.label.configure(text="%d" % self.remaining)
            self.remaining = self.remaining - 1
            self.after(1000, self.countdown)

tempo=Tempo()
tempo.countdown()
top.mainloop()
来自future.moves导入tkinter
top=tkinter.Tk()
高度=720
宽度=1280
canvas=tkinter.canvas(顶部,高度=高度,宽度=宽度)
canvas.pack()
课堂节奏(tkinter.Tk):
定义初始化(自):
tkinter.Tk.\uuuuu初始化\uuuuuuuuu(自)
self.label=tkinter.label(顶部,宽度=10,font=“Verdana 12粗体”,bg=“白色”)
self.label.place(relwidth=0.18,relheight=0.04,relx=0.5-0.09,rely=0.3-0.02)
自剩余=0
自我倒计时(10)
def倒计时(自身,剩余=无):
如果剩余值不是无:
自我剩余=剩余

如果self.remaining为什么要调用倒计时()两次?
top
tempo
都是
Tk()
的实例,所以有两个窗口。您可以使用
Tempo
类来扩展
tkinter.Frame
而不是
tkinter.Tk
。谢谢@coderoftheday。这是一个新手的错误,现在我明白了为什么倒计时要快一倍。谢谢@acw1668。它解决了我的双窗口问题。你真的帮了大忙。