如果我想簡單地用語句創建一個Tkinter的GUI,我可以這樣做:Python:爲什麼Tkinter類實例化必須使用Frame?
from Tkinter import *
root = Tk()
root.title("Test Window")
tkFrame = Frame(root)
tkButton = Button(tkFrame)
[...]
的文檔,但是,建議,Tkinter的一個類定義中,繼承一個框架構件:
class App(Frame):
[...]
我想明白這是爲什麼。爲什麼我們不能將框架的容器,窗口分類?看起來,第一個例子中的語句是做什麼的,爲什麼不在類定義中呢?
EDIT(以下布萊恩·奧克利的回答):
我想在Tkinter的最高水平,我以爲是TK()(雖然我所遇到的引用,說明框架是頂級實例,但是不要緊)。事實上,下面將創建一個窗口:
from Tkinter import *
class Application(Tk):
pass
app = Application()
app.mainloop()
...但只要我嘗試在新窗口中添加小工具我要麼得到錯誤或兩個窗口,與窗口小部件,這取決於我如何結構碼。下面是將產生一個第二窗口與按鈕一個基本的例子:
from Tkinter import *
class Application(Tk):
tkBtn = Button()
tkBtn.pack()
app = Application()
app.mainloop()
再說了,使用self
,__init__
等,產生錯誤。有人可以指向我在最高級別實例化Tkinter的代碼嗎?就像我看到的所有Frame
亞類,但在最高級別?
任何引用您已經有人說「Frame」是「Tkinter的最高級別」是錯誤的。 –