tkinter中佈局pack、place和grid(八)

Tynam.Yang發表於2018-04-10

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開始的

結果為:

 

相關文章