所以,我有两个tkinter,一个使用class
,另一个没有类。一切都应该是一样的,但是当我使用“类”时,它会创建两个窗口,一个是我实际创建的窗口,另一个是我不知道它来自何处(可能是因为我同时使用了Frame
和tk.Tk
,但是没有类它就不能工作)
import tkinter as tk
window = tk.Tk()
framer = tk.Frame(window)
window.title("Test")
window.geometry("720x480+360+240")
window.mainloop()
上面是没有课的。 下面这张是有课的
try:
import tkinter as tk
except ImportError: #2.x
import Tkinter as tk
class typtolator(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
window = tk.Tk()
framer = tk.Frame(window)
window.title("Typtolator")
window.geometry("720x480+360+240")
app = typtolator()
app.mainloop()
你得到两个窗口,因为你创建了两个窗口
第一个窗口是
app
,是typtolator
的一个实例。这个类是tk.Tk
的一个子类,因此是一个tk.Tk
第二个窗口是
window
,它是在创建app
时创建的tk.Tk
的实例解决方法是这样或那样:子类
tk.Tk
,或者不创建子类,然后显式创建tk.Tk
的实例正如@Bryan Oakley在他的回答中指出的,问题是类是一个
tk.Tk
,因为它是从一个派生的,所以额外的窗口是因为它在__init__()
方法中创建了第二个纯tk.Tk
实例他漏掉的是一个正确操作的例子,我认为这可能很重要,如下所示:
相关问题 更多 >
编程相关推荐