摘要:已獲原作者授權(quán)原系列地址簡(jiǎn)介控件允許用戶在多個(gè)選項(xiàng)中選擇多項(xiàng)則只允許用戶選擇一項(xiàng)通常會(huì)顯示為一個(gè)空白的方框表示未被選中或者方框中有一個(gè)對(duì)號(hào)或號(hào)表示被選中一個(gè)對(duì)該選項(xiàng)的簡(jiǎn)短描述會(huì)和選擇框一同顯示的狀態(tài)會(huì)因點(diǎn)擊而改變這個(gè)點(diǎn)擊可能來(lái)自鼠標(biāo)也可能來(lái)
已獲原作者授權(quán). 原系列地址: Python Tkinter簡(jiǎn)介
Checkbox 控件允許用戶在多個(gè)選項(xiàng)中選擇多項(xiàng). Radiobutton 則只允許用戶選擇一項(xiàng).
通常, Checkbox 會(huì)顯示為一個(gè)空白的方框 (表示 false, 未被選中), 或者方框中有一個(gè)對(duì)號(hào)或X號(hào) (表示 true, 被選中). 一個(gè)對(duì)該選項(xiàng)的簡(jiǎn)短描述會(huì)和選擇框一同顯示. checkbox 的狀態(tài)會(huì)因點(diǎn)擊而改變, 這個(gè)點(diǎn)擊可能來(lái)自鼠標(biāo), 也可能來(lái)自鍵盤(pán)熱鍵, 比如空格鍵通常被設(shè)置為 checkbox 的選擇鍵.
一個(gè) checkbox 有兩種狀態(tài): 開(kāi) 或者 關(guān).
Tkinter 中的 checkbox 可以包含文字, 可多行顯示, 但只能使用預(yù)設(shè)字體; 也可以包含圖片. 可以綁定一個(gè) Python 函數(shù)或方法. 當(dāng) checkbox 被點(diǎn)擊時(shí), 該函數(shù)或方法會(huì)被調(diào)用.
下例中展示了兩個(gè) checkbox: 男和女 ("male" 和 "female"). 每個(gè) checkbox 都和一個(gè)不同的變量相關(guān)聯(lián) (IntVar()).
from tkinter import * master = Tk() var1 = IntVar() Checkbutton(master, text="male", variable=var1).grid(row=0, sticky=W) var2 = IntVar() Checkbutton(master, text="female", variable=var2).grid(row=1, sticky=W) mainloop()
上面的代碼會(huì)顯示如下窗口:
我們可以對(duì)上例進(jìn)行改進(jìn). 首先我們加入一個(gè) Label 控件. 然后我們加入兩個(gè) Button 控件, 一個(gè)用來(lái)退出應(yīng)用, 一個(gè)用來(lái)查看每個(gè) checkbox 所關(guān)聯(lián)的變量的值.
from tkinter import * master = Tk() def var_states(): print("male: %d, female: %d" % (var1.get(), var2.get())) Label(master, text="Your sex:").grid(row=0, sticky=W) var1 = IntVar() Checkbutton(master, text="male", variable=var1).grid(row=1, sticky=W) var2 = IntVar() Checkbutton(master, text="female", variable=var2).grid(row=2, sticky=W) Button(master, text="Quit", command=master.quit).grid(row=3, sticky=W, pady=4) Button(master, text="Show", command=var_states).grid(row=4, sticky=W, pady=4) mainloop()
上面的代碼顯示如下窗口:
如果我們勾選 "male" 選項(xiàng), 然后點(diǎn)擊 "show" 按鈕, 我們會(huì)得到下面的輸出:
male: 1, female: 0另一個(gè)例子
編寫(xiě)一個(gè)應(yīng)用, 用 checkbox 來(lái)描述一些編程語(yǔ)言, 比如 Python, Ruby, Perl, C++, 和一些自然語(yǔ)言, 比如 English, German. 這樣用戶就可以在其中挑選出編程語(yǔ)言和自然語(yǔ)言. 然后再在其中加入兩個(gè)按鈕, 一個(gè)用來(lái)退出應(yīng)用, 一個(gè)用來(lái)查看 checkbox 的取值狀態(tài).
#!/usr/bin/python3 from tkinter import * class Checkbar(Frame): def __init__(self, parent=None, picks=[], side=LEFT, anchor=W): Frame.__init__(self, parent) self.vars = [] for pick in picks: var = IntVar() chk = Checkbutton(self, text=pick, variable=var) chk.pack(side=side, anchor=anchor, expand=YES) self.vars.append(var) def state(self): return map((lambda var: var.get()), self.vars) if __name__ == "__main__": root = Tk() lng = Checkbar(root, ["Python", "Ruby", "Perl", "C++"]) tgl = Checkbar(root, ["English","German"]) lng.pack(side=TOP, fill=X) tgl.pack(side=LEFT) lng.config(relief=GROOVE, bd=2) def allstates(): print(list(lng.state()), list(tgl.state())) Button(root, text="Quit", command=root.quit).pack(side=RIGHT) Button(root, text="Peek", command=allstates).pack(side=RIGHT) root.mainloop()
上面的代碼輸出如下窗口:
全系列:
[譯][Tkinter 教程01] 入門(mén): Label 控件
[譯][Tkinter 教程02] Message 控件
[譯][Tkinter 教程03] Button 控件
[譯][Tkinter 教程04] Variable 類(lèi)
[譯][Tinkter 教程05] Radiobutton 控件
[譯][Tkinter 教程06] Checkbox 控件
[譯][Tkinter 教程07] Entry 控件
[譯][Tkinter 教程08] Canvas 圖形繪制
[譯][Tkinter 教程09] Scale 控件
[譯][Tkinter 教程10] Text 控件
[譯][Tkinter 教程11] 對(duì)話框和消息框
[譯][Tkinter 教程12] 布局管理 (Pack Place Grid)
[譯][Tkinter 教程13] Mastermind 游戲
[譯][Tkinter 教程14] menu 菜單
[譯][Tkinter 教程15] event 事件綁定
譯者水平有限, 如有疏漏, 歡迎指正.
已獲得原作者授權(quán). 原文地址: Checkboxes
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41483.html
摘要:已獲原作者授權(quán)原系列地址簡(jiǎn)介控件是一種標(biāo)準(zhǔn)控件用來(lái)展現(xiàn)不同樣式的按鈕控件被用以和用戶交互比如按鈕被鼠標(biāo)點(diǎn)擊后某種操作被啟動(dòng)和控件類(lèi)似按鈕可以展示圖片或者文字不同的是控件可以指定字體控件只能使用單一的字體上的文字可以多行顯示可以將一個(gè)函數(shù)或方 已獲原作者授權(quán). 原系列地址: Python Tkinter 簡(jiǎn)介 Button 控件是一種標(biāo)準(zhǔn) Tkinter 控件, 用來(lái)展現(xiàn)不同樣式的按鈕...
摘要:已獲原作者授權(quán)原系列地址類(lèi)有些控件比如控件控件等可以通過(guò)傳入特定參數(shù)直接和一個(gè)程序變量綁定這些參數(shù)包括這種綁定是雙向的如果該變量發(fā)生改變與該變量綁定的控件也會(huì)隨之更新這些控制變量和一般的變量一樣都是用來(lái)保存某個(gè)值的但一般的變量不能被傳遞給或 已獲原作者授權(quán). 原系列地址: Python Tkinter Variable 類(lèi) 有些控件 (比如 Entry 控件, Radiobutton...
摘要:已獲原作者授權(quán)原系列地址簡(jiǎn)介一提到這個(gè)詞很多人首先想到的是餐館里的菜單雖然餐館菜單和計(jì)算機(jī)程序中的菜單看起來(lái)一點(diǎn)也不像但他們確實(shí)有很多共同點(diǎn)在餐館中菜單列舉了所有菜品和飲料在計(jì)算機(jī)程序中菜單通過(guò)圖形界面展示了應(yīng)用程序可用的命令和功能在用戶界 已獲原作者授權(quán). 原系列地址: Python Tkinter 簡(jiǎn)介 一提到menu這個(gè)詞, 很多人首先想到的是餐館里的菜單. 雖然餐館菜單和計(jì)算...
摘要:已獲原作者授權(quán)原系列地址控件控件用來(lái)展示一些文字短消息和控件有些類(lèi)似但在展示文字方面比要靈活比如控件可以改變字體而控件只能使用一種字體它提供了一個(gè)換行對(duì)象以使文字可以斷為多行它可以支持文字的自動(dòng)換行及對(duì)齊這里要澄清一下前面提到的控件可以改變 已獲原作者授權(quán). 原系列地址: Python Tkinter Message 控件 Message 控件用來(lái)展示一些文字短消息. Message...
摘要:已獲原作者授權(quán)原系列地址單選按鈕是一種可在多個(gè)預(yù)先定義的選項(xiàng)中選擇出一項(xiàng)的控件單選按鈕可顯示文字或圖片顯示文字時(shí)只能使用預(yù)設(shè)字體該控件可以綁定一個(gè)函數(shù)或方法當(dāng)單選按鈕被選擇時(shí)該函數(shù)或方法將被調(diào)用單選按鈕這個(gè)名字來(lái)源于收音機(jī)上的調(diào)頻按鈕這些按 已獲原作者授權(quán). 原系列地址: Python Tkinter Radio Buttons 單選按鈕是一種可在多個(gè)預(yù)先定義的選項(xiàng)中選擇出一項(xiàng)的 T...
閱讀 2148·2021-11-23 10:13
閱讀 2851·2021-11-09 09:47
閱讀 2801·2021-09-22 15:08
閱讀 3390·2021-09-03 10:46
閱讀 2287·2019-08-30 15:54
閱讀 986·2019-08-28 18:09
閱讀 2474·2019-08-26 18:26
閱讀 2394·2019-08-26 13:48