2017-02-08 75 views
1

標籤無法顯示在左框架中。我對Python GUI很陌生。我的代碼有點是這樣的:Python - >標籤無法顯示到框架

from tkinter import * 

root = Tk() 

mainFrame = Frame(root, width=700, height=500) 
mainFrame.pack() 

leftFrame = Frame(mainFrame, bg="#c2c3c4") 
leftFrame.place(relheight=1, relwidth=0.34, anchor=W) 

label1 = Label(leftFrame, text="Label1") 
label2 = Label(leftFrame, text="Label2") 

label1.grid(columnspan=2, sticky=W, pady=(20, 0)) 
label2.grid(columnspan=3, sticky=W, pady=(5, 0)) 

root.mainloop() 

+0

很可能有一個問題,因爲你有'pack','place'和'grid'的組合。嘗試堅持一個幾何管理器。 –

+1

@StevenSummers:不,問題不是因爲'pack','place'和'grid'混合在一起。這僅僅是OP在錯誤地使用「place」。我認爲最好的做法是在應用程序中同時使用'grid'和'pack',注意你不能將它們用於具有相同父項的小部件。 –

+0

啊好吧,我認爲最好避免混合它們。 –

回答

1

在這種特殊情況下,你不看標籤,因爲他們是關閉屏幕。 leftFrame具有W的錨點,這意味着leftFrame的垂直中心位於0,0。換句話說,框架的一半位於窗口的可見部分之上。

要證明這一點的一個快速解決方案是使用NW而不是W的錨點,這將導致框架的左上角位於其父元素的左上角。

但是,我強烈建議您根據而不是使用place。它有它的用途,但真的應該很少使用。你最終不得不自己做很多工作,結果通常不會對字體,分辨率或窗口大小的變化作出很好的響應。

+0

已注意。感謝您的迴應。 :d – Darrius