就在我以爲我明白了pack()
經理,我來到了以下問題:Tkinter的包()幾何管理混亂
我創建了兩個幀(每一個Button
),並希望他們水平收拾另一個框架(這是'主要'框架)。出於某種原因,它們呈現垂直。如果我用一個簡單的按鈕替換第一幀,則使用相同的pack()
指令,按鈕+第二幀水平打包爲。
下面是程序的蒸餾水(但工作)版本:
from Tkinter import *
class QuitBtn1(Button):
def __init__(self):
Button.__init__(self)
self["text"] = "Quit"
self["fg"] = "red"
self["command"] = self.quit
class QuitBtn(Frame):
def __init__(self):
Frame.__init__(self)
b = Button(text = "Quit", fg = "red", command = self.quit)
b.pack()
class HiBtn(Frame):
def __init__(self):
Frame.__init__(self)
b = Button(text = "Hi there", fg = "blue", command = self.quit)
b.pack()
class App(Frame):
def __init__(self, master = None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
def say_hi(self):
print "hi there, everyone!"
def createWidgets(self):
self.QUIT = QuitBtn().pack(side = LEFT)
self.hi_there = HiBtn().pack(side = LEFT)
root = Tk()
app = App(master = root)
app.mainloop()
root.destroy()
運行方式,它產生兩個垂直包裝,幀。只需切換QuitBtn1
和QuitBtn
(將框架更改爲簡單按鈕)的名稱即可將包裝更改爲水平。
我看了數以萬計的例子,這似乎以某種方式避免了這個確切的結構。我在這裏做錯了什麼?
感謝您的出色答覆!在大型項目中,這並不是那麼容易,它具有更多的框架和更復雜的結構,但是提供了您提供的指示,我懷疑我可以到達那裏......有很多'介紹...'網上的教程,但很少有更高級的教程。 – jcoppens