tkinter中佈局pack、place和grid
pack佈局
1 import tkinter 2 3 wuya = tkinter.Tk() 4 wuya.title("wuya") 5 wuya.geometry("300x200+10+20") 6 7 8 # fill控制填充方式 9 lb1 = tkinter.Label(wuya, 10 text='wuya good good study', 11 bg='red', 12 ) 13 lb1.pack(fill=tkinter.X) 14 15 16 # padding 控制邊距,如果不設定則預設為0 17 # padx,設定x方向的外邊距,pady設定y方向的外邊距 18 lb2 = tkinter.Label(wuya, 19 text='wuyaa', 20 bg='green', 21 ) 22 lb2.pack(fill=tkinter.X,padx=10,pady=3) 23 # ipadx,設定x方向的外邊距,pady設定y方向的外邊距 24 lb3 = tkinter.Label(wuya, 25 text='wuyab', 26 bg='blue', 27 ) 28 lb3.pack(fill=tkinter.X,ipadx=10,ipady=3) 29 30 31 # side 為依次放置 32 lb4 = tkinter.Label(wuya, 33 text='wuya1', 34 bg='yellow', 35 ) 36 lb4.pack(side='left') 37 lb4 = tkinter.Label(wuya, 38 text='wuya2', 39 bg='pink', 40 ) 41 lb4.pack(side='left',padx=3) 42 43 wuya.mainloop()
結果:
place佈局
比較好理解,直接以所在的視窗的左上角為(0,0)開始計算,x為橫向的尺寸,y為縱向的尺寸,然後設定顯示的寬和高
1 import tkinter 2 3 wuya = tkinter.Tk() 4 wuya.title("wuya") 5 wuya.geometry("300x200+10+20") 6 43 lb1 = tkinter.Label(wuya, 44 text='wuya good good study', 45 bg='red', 46 ) 47 lb1.place(x=10,y=10,width=200,height=120) 48 49 lb2 = tkinter.Label(wuya, 50 text='wuya good good study', 51 bg='green', 52 ) 53 lb2.place(x=220,y=140,width=20,height=12) 54 55 wuya.mainloop()
結果為:
grid佈局
1 import tkinter 2 3 wuya = tkinter.Tk() 4 wuya.title("wuya") 5 wuya.geometry("300x200+10+20") 6 7 citys = {'001':'beijing', 8 '002':'shanghai', 9 '111':'tianjing', 10 '212':'xizang'} 11 i = 0 12 for item in citys: 13 lb1 = tkinter.Label(wuya, text=item,relief=tkinter.RIDGE,width=15,fg='blue') 14 lb1.grid(row=i,column=0) 15 lb2 = tkinter.Label(wuya,text=citys[item],relief=tkinter.SUNKEN,width=15,fg='red') 16 lb2.grid(row=i,column=1) 17 i = i + 1 18 19 wuya.mainloop()
row表示行,第幾行。column表示列,第幾列。計算的時候都是從0開始的
結果為: