2017-06-12 88 views
0

我有我的標籤安排在一個網格與label3粘到其單元格的SE側。Tkinter調整大小的網格

from tkinter import * 

class GUI: 
    def __init__(self, parent): 

     self.label1 = Label(parent, text = "Column 1") 
     self.label2 = Label(parent, text = "Column 2") 
     self.label3 = Label(parent, text = "Column 3") 
     self.label1.grid(row=0, column=0) 
     self.label2.grid(row=0, column=1) 
     self.label3.grid(row=0, column=2, sticky=SE) 

root = Tk() 
root.geometry("800x600") 
sale = GUI(root) 
root.title("Example") 
root.mainloop() 

當我運行程序時,網格佔用窗口總大小的一小部分。如何讓label3粘貼到網格窗口的右下角?

回答

0

grid對齊方法使用它們中最大的小部件的大小來確定網格中每個行和列的大小。

所以,如果你想「列3」的文字出現在GUI的右下角,你可以讓你的第三個標籤做大通過手動設置其widthheight

class GUI: 
    def __init__(self, parent): 
     self.label1 = Label(parent, text="Column 1", bg='red') 
     self.label2 = Label(parent, text="Column 2", bg='blue') 
     self.label3 = Label(parent, text="Column 3", bg='green', 
          width=97, height=39, anchor=SE) 
     self.label1.grid(row=0, column=0, sticky=N) 
     self.label2.grid(row=0, column=1, sticky=N) 
     self.label3.grid(row=0, column=2, sticky=SE) 

root = Tk() 
#root.geometry("800x600") 
sale = GUI(root) 
root.mainloop() 

另一種選擇是使用pack對齊方法:

class GUI: 
    def __init__(self, parent): 
     self.label1 = Label(parent, text="Column 1", bg='red', anchor=N) 
     self.label2 = Label(parent, text="Column 2", bg='blue', anchor=N) 
     self.label3 = Label(parent, text="Column 3", bg='green', anchor=SE) 
     self.label1.pack(fill=Y, side='left') 
     self.label2.pack(fill=Y, side='left') 
     self.label3.pack(fill=X, side='bottom') 

root = Tk() 
root.geometry("800x600") 
sale = GUI(root) 
root.mainloop() 
相關問題