tkinter學習-選擇按鈕


閱讀目錄

  • Checkbutton
  • Radiobutton 
  • LabelFrame

checkbutton :

  說明:多選框控件,用於在程序中提供多項選擇框,但是處理“多選一”的問題,還是交給 Radiobutton 或 Listbox 組件來實現吧。

  用法:使用 Checkbutton,你必須創建一個 Tkinter 變量用於存放按鈕的狀態:

from tkinter import *
root = Tk() v1 = IntVar() #用來表示按鈕是否選中 v2 = IntVar() c1 = Checkbutton(root,text='python',variable=v1) c2 = Checkbutton(root,text='java',variable=v2) c1.pack() c2.pack() mainloop()

結果 :

      

  用法:默認情況下,variable 選項設置為 1 表示選中狀態,反之設置為 0。你可以使用 onvalue 和 offvalue 選項修改它們的值,例如下邊代碼,只要 var 被設置為“T”即選中狀態, 設置為“F”則相反。

 

from tkinter import * root = Tk()                    
v = IntVar() v.set('T') c = Checkbutton(root,text = '測試',variable = v,onvalue='T',offvalue='F') c.pack()                 
l = Label(root,textvariable = v) l.pack() mainloop()

 

結果:

    

  用法:如果選項多的話可以用列表,代碼如下:

from tkinter import *
root = Tk()
GIRLS = ['西施','貂蟬','王昭君','楊玉環'] v = [] for girl in GIRLS: v.append(IntVar()) #這里注意 IntVar()
    b = Checkbutton(root,text=girl,variable=v[-1])  #這里注意 variable[-1]
    b.pack(anchor=W)         #這個是左對齊 mainloop()

 

把Checkbutton組件都向左對齊,可以設置pick()方法的anchor選項,

anchor選項指定顯示的位置,有 N,S,W,E,等組成。

結果:

    

 

Radiobutton:

  說明:單選按鈕控件,顯示一個單選的按鈕狀態,需要設置不同的value值。

from tkinter import * root = Tk() LANGS = [ ('python',1), ('perl',2), ('c',3), ('java',4)] v = IntVar()          #這里注意 v.set(1)            #默認是選第一個 for lang,num in LANGS: b = Radiobutton(root,text=lang,variable=v,value=num) b.pack(anchor=W) mainloop()

 

結果:

                   

如果不喜歡前面的小圓圈,還可以去掉前面的小圓圈,indicatoron設置為False就可以去掉前面的小圓圈。 

b = Radiobutton(root,text=lang,variable=v,value=num,indicatoron=False) b.pack(fill=X)    #橫向填充

 

LabelFrame:

  說明:labelframe 是一個簡單的容器控件,常用與復雜的窗口布局。

from tkinter import * root = Tk() group = LabelFrame(root,text="最好的腳本語言?",padx=5,pady=5) group.pack(padx=10,pady=10) LANGS=[ ('python',1), ('java',2), ('c',3)] v = IntVar() v.set(1) for long,num in LANGS: b = Radiobutton(group,text=long,variable=v,value=num) b.pack(anchor=W) mainloop() 

 

結果:

    

參考文獻:

    小甲魚的python教學視頻

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM