Tkinter組件Checkbutton的具體使用
Checkbutton(多選按鈕)組件用于實現(xiàn)確定是否選擇的按鈕。Checkbutton 組件可以包含文本或圖像,你可以將一個 Python 的函數(shù)或方法與之相關(guān)聯(lián),當按鈕被按下時,對應(yīng)的函數(shù)或方法將被自動執(zhí)行。
Checkbutton 組件僅能顯示單一字體的文本,但文本可以跨越多行。另外,還可以為其中的個別字符加上下劃線(例如用于表示鍵盤快捷鍵)。默認情況下,tab 按鍵被用于在按鈕間切換。
何時使用 Checkbutton 組件?
Checkbutton 組件被用于作為二選一的按鈕(通常為選擇“開”或“關(guān)”的狀態(tài)),當你希望表達“多選多”選項的時候,可以將一系列 Checkbutton 組合起來使用。
但是處理“多選一”的問題,還是交給 Radiobutton 和 Listbox 組件來實現(xiàn)吧。
用法
(參考 Button 組件的用法)
使用 Checkbutton,你必須創(chuàng)建一個 Tkinter 變量用于存放按鈕的狀態(tài):
from Tkinter import * master = Tk() var = IntVar() c = Checkbutton(master, text="我是帥鍋", variable=var) c.pack() mainloop()

默認情況下,variable 選項設(shè)置為 1 表示選中狀態(tài),反之設(shè)置為 0。你可以使用 onvalue 和 offvalue 選項修改它們的值,例如下邊代碼,只要 var 被設(shè)置為“T”即選中狀態(tài),設(shè)置為“F”則相反:
var = tk.StringVar()
var.set("T")
c = tk.Checkbutton(root, text="你喜歡Python嗎", variable=var, onvalue="T", offvalue="F")
c.pack()
如果你需要同時跟蹤 variable 選項以及 Checkbutton 組件對象,你不妨可以試試將兩者結(jié)合起來(下邊在 CheckButton 組件對象中新建一個 var 變量,存放 variable 的值 v):
v = tk.IntVar() c = tk.Checkbutton(master, text="加特技", variable=v) c.var = v
如果你的 Tkinter 代碼是放在類中的(在實際編程中你就應(yīng)該這么干),那么將 variable 選項的值作為屬性存儲可能是更好的選擇:
def __init__(self, master):
self.var = tk.IntVar()
c = tk.Checkbutton(master, text="DUANG~", variable=self.var, command=self.cb)
c.pack()
def cb(self, event):
print "variable is", self.var.get()參數(shù)
Checkbutton(master=None, **options) (class)
master -- 父組件
**options -- 組件選項,下方表格詳細列舉了各個選項的具體含義和用法:
| 選項 | 含義 |
| activebackground | 1. 設(shè)置當 Checkbutton 處于活動狀態(tài)(通過 state 選項設(shè)置狀態(tài))的背景色 2. 默認值由系統(tǒng)指定 |
| activeforeground | 1. 設(shè)置當 Checkbutton 處于活動狀態(tài)(通過 state 選項設(shè)置狀態(tài))的前景色 2. 默認值由系統(tǒng)指定 |
| anchor | 1. 控制文本(或圖像)在 Checkbutton 中顯示的位置 2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者 "center" 來定位(ewsn 代表東西南北,上北下南左西右東) 3. 默認值是 "center" |
| background | 1. 設(shè)置背景顏色 2. 默認值由系統(tǒng)指定 |
| bg | 跟 background 一樣 |
| bitmap | 1. 指定顯示到 Checkbutton 上的位圖 2. 如果指定了 image 選項,則該選項被忽略 |
| borderwidth | 1. 指定 Checkbutton 的邊框?qū)挾?br />2. 默認值由系統(tǒng)指定,通常是 1 或 2 像素 |
| bd | 跟 borderwidth 一樣 |
| command | 1. 指定于該按鈕相關(guān)聯(lián)的函數(shù)或方法 2. 當按鈕被按下時由 Tkinter 自動調(diào)用對應(yīng)的函數(shù)或方法 3. 如果不設(shè)置此選項,那么該按鈕被按下后啥事兒也不會發(fā)生 |
| compound | 1. 控制 Checkbutton 中文本和圖像的混合模式 2. 默認情況下,如果有指定位圖或圖片,則不顯示文本 3. 如果該選項設(shè)置為 "center",文本顯示在圖像上(文本重疊圖像) 4. 如果該選項設(shè)置為 "bottom","left","right" 或 "top",那么圖像顯示在文本的旁邊(如 "bottom",則圖像在文本的下方) 5. 默認值是 NONE |
| cursor | 1. 指定當鼠標在 Checkbutton 上飄過的時候的鼠標樣式 2. 默認值由系統(tǒng)指定 |
| disabledforeground | 1. 指定當 Checkbutton 不可用的時候前景色的顏色 2. 默認值由系統(tǒng)指定 |
| font | 1. 指定 Checkbutton 中文本的字體 2. 一個 Checkbutton 只能設(shè)置一種字體 3. 默認值由系統(tǒng)指定 |
| foreground | 1. 設(shè)置 Checkbutton 的文本和位圖的顏色 2. 默認值由系統(tǒng)指定 |
| fg | 跟 foreground 一樣 |
| height | 1. 設(shè)置 Checkbutton 的高度 2. 如果 Checkbutton 顯示的是文本,那么單位是文本單元 3. 如果 Checkbutton 顯示的是圖像,那么單位是像素(或屏幕單元) 4. 如果設(shè)置為 0 或者干脆不設(shè)置,那么會自動根據(jù) Checkbutton 的內(nèi)容計算出高度 |
| highlightbackground | 1. 指定當 Checkbutton 沒有獲得焦點的時候高亮邊框的顏色 2. 默認值由系統(tǒng)指定,通常是標準背景顏色 |
| highlightcolor | 1. 指定當 Checkbutton 獲得焦點的時候高亮邊框的顏色 2. 默認值由系統(tǒng)指定 |
| highlightthickness | 1. 指定高亮邊框的寬度 2. 默認值是 1 |
| image | 1. 指定 Checkbutton 顯示的圖片 2. 該值應(yīng)該是 PhotoImage,BitmapImage,或者能兼容的對象 3. 該選項優(yōu)先于 text 和 bitmap 選項 |
| indicatoron | 1. 指定前邊作為選擇的小方塊是否繪制 2. 默認是繪制的 3. 該選項會影響到按鈕的樣式,如果設(shè)置為 False,則點擊后該按鈕變成 "sunken"(凹陷),再次點擊變?yōu)?"raised"(凸起) |
| justify | 1. 定義如何對齊多行文本 2. 使用 "left","right" 或 "center" 3. 注意,文本的位置取決于 anchor 選項 4. 默認值是 "center" |
| offvalue | 1. 默認情況下,variable 選項設(shè)置為 1 表示選中狀態(tài),反之設(shè)置為 0 2. 設(shè)置 offvalue 的值可以自定義未選中狀態(tài)的值(詳見上方用法舉例) |
| onvalue | 1. 默認情況下,variable 選項設(shè)置為 1 表示選中狀態(tài),反之設(shè)置為 0 2. 設(shè)置 onvalue 的值可以自定義選中狀態(tài)的值(詳見上方用法舉例) |
| padx | 1. 指定 Checkbutton 水平方向上的額外間距(內(nèi)容和邊框間) 2. 默認值是 1 |
| pady | 1. 指定 Checkbutton 垂直方向上的額外間距(內(nèi)容和邊框間) 2. 默認值是 1 |
| relief | 1. 指定邊框樣式 2. 該值通常是 "flat",除非你設(shè)置 indicatoron 選項為 False 3. 如果 indicatoron 為 False,你還可以設(shè)置 "sunken","raised","groove" 或 "ridge" |
| selectcolor | 1. 選擇框的顏色(就是打勾勾的那個正方形小框框) 2. 默認值由系統(tǒng)指定 |
| selectimage | 1. 設(shè)置當 Checkbutton 為選中狀態(tài)的時候顯示的圖片 2. 如果沒有指定 image 選項,該選項被忽略 |
| state | 1. 指定 Checkbutton 的狀態(tài) 2. 默認值是 "normal" 3. 另外你還可以設(shè)置 "active" 或 "disabled" |
| takefocus | 1. 如果是 True,該組件接受輸入焦點(用戶可以通過 tab 鍵將焦點轉(zhuǎn)移上來) 2. 默認值是 False |
| text | 1. 指定 Checkbutton 顯示的文本 2. 文本可以包含換行符 3. 如果設(shè)置了 bitmap 或 image 選項,該選項則被忽略 |
| textvariable | 1. Checkbutton 顯示 Tkinter 變量(通常是一個 StringVar 變量)的內(nèi)容 2. 如果變量被修改,Checkbutton 的文本會自動更新 |
| underline | 1. 跟 text 選項一起使用,用于指定哪一個字符畫下劃線(例如用于表示鍵盤快捷鍵) 2. 默認值是 -1 3. 例如設(shè)置為 1,則說明在 Checkbutton 的第 2 個字符處畫下劃線 |
| variable | 1. 將 Checkbutton 跟一個 Tkinter 變量關(guān)聯(lián) 2. 當按鈕按下時,該變量在 onvalue 和 offvalue 之間切換 3. 這個切換的過程是完全自動的 |
| width | 1. 設(shè)置 Checkbutton 的寬度 2. 如果 Checkbutton 顯示的是文本,那么單位是文本單元 3. 如果 Checkbutton 顯示的是圖像,那么單位是像素(或屏幕單元) 4. 如果設(shè)置為 0 或者干脆不設(shè)置,那么會自動根據(jù) Checkbutton 的內(nèi)容計算出寬度 |
| wraplength | 1. 決定 Checkbutton 的文本應(yīng)該被分成多少行 2. 該選項指定每行的長度,單位是屏幕單元 3. 默認值是 0 |
方法
deselect()
-- 取消 Checkbutton 組件的選中狀態(tài),也就是設(shè)置 variable 為 offvalue。
flash()
-- 刷新 Checkbutton 組件,該方法將重繪 Checkbutton 組件若干次(在"active" 和 "normal" 狀態(tài)間切換)。
invoke()
-- 調(diào)用 Checkbutton 中 command 選項指定的函數(shù)或方法,并返回函數(shù)的返回值。
-- 如果 Checkbutton 的state(狀態(tài))"disabled"是 (不可用)或沒有指定 command 選項,則該方法無效。
select()
-- 將 Checkbutton 組件設(shè)置為選中狀態(tài),也就是設(shè)置 variable 為 onvalue。
toggle()
-- 切換 Checkbutton 組件的狀態(tài)(選中 -> 未選中 / 未選中 -> 選中)。
到此這篇關(guān)于Tkinter組件Checkbutton的具體使用的文章就介紹到這了,更多相關(guān)Tkinter組件Checkbutton內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python pandas實現(xiàn)excel工作表合并功能詳解
這篇文章主要介紹了Python pandas實現(xiàn)excel工作表合并功能以及相關(guān)實例代碼,需要的朋友們參考學習下。2019-08-08
Python3 獲取一大段文本之間兩個關(guān)鍵字之間的內(nèi)容方法
今天小編就為大家分享一篇Python3 獲取一大段文本之間兩個關(guān)鍵字之間的內(nèi)容方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
pytorch?tensor按廣播賦值scatter_函數(shù)的用法
這篇文章主要介紹了pytorch?tensor按廣播賦值scatter_函數(shù)的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
python生成不重復(fù)隨機數(shù)和對list亂序的解決方法
下面小編就為大家分享一篇python生成不重復(fù)隨機數(shù)和對list亂序的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python 帶你快速上手 Apache APISIX 插件開發(fā)
Apache APISIX Python Runner 來了,社區(qū)中的小伙伴們在開發(fā) Apache APISIX 插件時又多了一種新選擇,本文將用實列向大家介紹,需要的朋友可以參考下面文章內(nèi)容2021-09-09
關(guān)于Python 多重繼承時metaclass conflict問題解決與原理探究
這篇文章主要介紹了Python 多重繼承時metaclass conflict問題解決與原理探究 ,需要的朋友可以參考下2022-10-10

