国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[Tkinter 教程06] Checkbox 控件

2019-11-06 06:20:19
字體:
來源:轉載
供稿:網友

簡介

Checkbox 控件允許用戶在多個選項中選擇多項. Radiobutton 則只允許用戶選擇一項. 通常, Checkbox 會顯示為一個空白的方框 (表示 false, 未被選中), 或者方框中有一個對號或X號 (表示 true, 被選中). 一個對該選項的簡短描述會和選擇框一同顯示. checkbox 的狀態會因點擊而改變, 這個點擊可能來自鼠標, 也可能來自鍵盤熱鍵, 比如空格鍵通常被設置為 checkbox 的選擇鍵. 一個 checkbox 有兩種狀態: 開 或者 關. Tkinter 中的 checkbox 可以包含文字, 可多行顯示, 但只能使用預設字體; 也可以包含圖片. 可以綁定一個 Python 函數或方法. 當 checkbox 被點擊時, 該函數或方法會被調用.

簡單例子

下例中展示了兩個 checkbox: 男和女 (“male” 和 “female”). 每個 checkbox 都和一個不同的變量相關聯 (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()

上面的代碼會顯示如下窗口: 這里寫圖片描述

我們可以對上例進行改進. 首先我們加入一個 Label 控件. 然后我們加入兩個 Button 控件, 一個用來退出應用, 一個用來查看每個 checkbox 所關聯的變量的值.

from tkinter import *master = Tk()def var_states(): 上面的代碼顯示如下窗口: 這里寫圖片描述

如果我們勾選 “male” 選項, 然后點擊 “show” 按鈕, 我們會得到下面的輸出:

male: 1,female: 0

另一個例子

編寫一個應用, 用 checkbox 來描述一些編程語言, 比如 Python, Ruby, Perl, C++, 和一些自然語言, 比如 English, German. 這樣用戶就可以在其中挑選出編程語言和自然語言. 然后再在其中加入兩個按鈕, 一個用來退出應用, 一個用來查看 checkbox 的取值狀態.

#!/usr/bin/python3from 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()

上面的代碼輸出如下窗口: 這里寫圖片描述


已獲得原作者授權. 原文地址


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平南县| 和顺县| 高平市| 张家界市| 榆中县| 潜山县| 洪泽县| 来安县| 修水县| 大姚县| 阿克苏市| 商南县| 松原市| 长春市| 瑞金市| 肃宁县| 绥滨县| 南涧| 镇坪县| 庄浪县| 龙口市| 阿克苏市| 通江县| 宁陵县| 清苑县| 当阳市| 嘉定区| 桦川县| 儋州市| 迁西县| 图们市| 清远市| 阿克苏市| 阳原县| 涞源县| 永川市| 湟源县| 湖州市| 富宁县| 兰州市| 霍林郭勒市|