tkinter中checkbutton多選框控制元件和variable用法(六)

Tynam.Yang發表於2018-04-10

checkbutton控制元件

簡單的實現多選:

 1 import tkinter
 2 
 3 wuya = tkinter.Tk()
 4 wuya.title("wuya")
 5 wuya.geometry("300x200+10+20")
 6 
 7 # 建立四個多選框
 8 cb1 = tkinter.Checkbutton(wuya,text='周杰倫')
 9 cb1.pack()
10 cb2 = tkinter.Checkbutton(wuya,text='周星馳')
11 cb2.pack()
12 cb3 = tkinter.Checkbutton(wuya,text='愛舞涯')
13 cb3.pack()
14 cb4 = tkinter.Checkbutton(wuya,text='蔡依林')
15 cb4.pack()
16 
17 wuya.mainloop()

tkinter中如果不設定對齊方式,預設是居中的,如果要設定可以在pack()中加引數:cb1.pack(side='left')

結果為:

 

結合之前學的加lable和列印功能:

 1 import tkinter
 2 
 3 wuya = tkinter.Tk()
 4 wuya.title("wuya")
 5 wuya.geometry("300x200+10+20")
 6 
 7 # 加標籤
 8 lb = tkinter.Label(wuya,text='請選擇自己喜歡的名星(多選):',fg='blue')
 9 lb.pack()
10 
11 
12 
13 # 定義執行選擇框後的函式
14 def func():
15     msg = ''
16     if h1.get() == True: # 因為h1建立時是bool的運算,選中為真,不選為假
17         msg += "周杰倫\n"
18     if h2.get() == True:
19         msg += "周星馳\n"
20     if h3.get() == True:
21         msg += "愛舞涯\n"
22     if h4.get() == True:
23         msg += "蔡依林\n"
24 
25     text.delete(0.0,tkinter.END)   # 清除text中的內容,0.0表示從第一行第一個字開始清除,end表示清除到最後結束
26     text.insert('insert',msg)
27 
28 # 建立四個多選框
29 h1 = tkinter.BooleanVar() # 設定選擇框物件
30 cb1 = tkinter.Checkbutton(wuya,text='周杰倫',variable=h1,command=func)
31 cb1.pack()
32 
33 h2 = tkinter.BooleanVar()
34 cb2 = tkinter.Checkbutton(wuya,text='周星馳',variable=h2,command=func)
35 cb2.pack()
36 
37 h3 = tkinter.BooleanVar()
38 cb3 = tkinter.Checkbutton(wuya,text='愛舞涯',variable=h3,command=func)
39 cb3.pack()
40 
41 h4 = tkinter.BooleanVar()
42 cb4 = tkinter.Checkbutton(wuya,text='蔡依林',variable=h4,command=func)
43 cb4.pack()
44 # side='left'表示左對齊
45 
46 # 建立一個文字框
47 text = tkinter.Text(wuya,width=30,height=10)
48 text.pack()
49 
50 
51 wuya.mainloop()

結果為:

 

 

variable用法

variable主要用於傳參和繫結變數。主要引數有:variabletextvariableonvalueoffvaluevalue

他是雙向繫結的,也就是說如果該變數發生變化,隨之繫結的控制元件也會變化,與他保持一致

常用的variable變數有:

  x = StringVar()  儲存一個 string 型別變數, 預設值為""

  x = IntVar()  儲存一個整型變數, 預設值為0

  x = DoubleVar()  儲存一個浮點型變數,預設值為0.0

  x = BooleanVar()  儲存一個布林型變數,返回值為0表示假,1表示真

對他的操作主要有兩個:

  設定他的值,用set()方法,即:x.set()

  得到他的值,用get()方法,即:x.get()

 

相關文章