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主要用於傳參和繫結變數。主要引數有:variable
, textvariable
, onvalue
, offvalue
, value
他是雙向繫結的,也就是說如果該變數發生變化,隨之繫結的控制元件也會變化,與他保持一致
常用的variable變數有:
x = StringVar() 儲存一個 string 型別變數, 預設值為""
x = IntVar() 儲存一個整型變數, 預設值為0
x = DoubleVar() 儲存一個浮點型變數,預設值為0.0
x = BooleanVar() 儲存一個布林型變數,返回值為0表示假,1表示真
對他的操作主要有兩個:
設定他的值,用set()方法,即:x.set()
得到他的值,用get()方法,即:x.get()