2016-02-12 1180 views
0

我有一個問題讓標籤內的文字左對齊Tkinter。我曾嘗試使用justify = Tkconstants.LEFT,但似乎沒有工作。我也嘗試過anchor = Tkcontants.W,但這似乎也沒有幫助。文字總是出現在標籤的中心。這裏是我有關於標籤的內容:如何使Tkinter.Label正確對齊

LookupOutput = Tkinter.Label(UI,textvariable=User,justify=Tkconstants.LEFT) 
LookupOutput.grid(row=5, column=0, columnspan=5, padx=5) 

我認爲這與我的欄杆有關,但我不知道如何解決它。有沒有人有一個想法如何讓這個東西左對齊文本?

+0

'用戶'文本變量只是一個空格分隔的字符串列表,沒有換行符,如果有幫助的話。 – Marek

+1

我不確定你的問題確切發生在沒有其他代碼的地方,但是如果你在'.grid(...)'參數中添加'sticky = W'會發生什麼? – maccartm

+0

查看'https://github.com/furas/my-python-codes/tree/master/tkinter/grid-pack-align上的示例圖片 – furas

回答

1

使標籤中的文本與小部件左側對齊的正確方法是使用anchor屬性。值爲"w"(或通過使用Tkinter常數W)代表「west」。

LookupOutput = Tkinter.Label(UI,textvariable=User,anchor=Tkconstants.W) 

justify屬性僅影響包裝的文本。

如果這不起作用,問題可能不在標籤中的文本。這可能是因爲您的標籤不佔用您認爲它的空間。一個簡單的方法來檢查這是給標籤一個獨特的背景顏色,以便您可以區分標籤與其父。

我注意到,當您撥打grid時,您沒有使用sticky屬性 - 這也可能導致問題。默認情況下,網格將在分配給它的空間中心對齊一個小部件。如果您希望它「粘」到所給空間的左側,請使用sticky="w"(或者再次使用Tkinter常量)。