[譯][Tinkter 教程05] Radiobutton 控件

原系列地址: Python Tkinter

Radio Buttons

單選按鈕是一種可在多個預(yù)先定義的選項中選擇出一項的 Tkinter 控件. 單選按鈕可顯示文字或圖片. 顯示文字時只能使用預(yù)設(shè)字體. 該控件可以綁定一個 Python 函數(shù)或方法, 當單選按鈕被選擇時, 該函數(shù)或方法將被調(diào)用.
單選按鈕 (Radio Button) 這個名字來源于收音機 (Radio) 上的調(diào)頻按鈕, 這些按鈕用來選擇特定波段或預(yù)設(shè)電臺. 如果一個按鈕被按下, 其他同類的按鈕就會彈起, 即同時只有一個按鈕可被按下.
一組單選按鈕控件和同一個變量關(guān)聯(lián). 點擊其中一個單選按鈕將把這個變量設(shè)為某個預(yù)定義的值.

簡單例子

from Tkinter import *

root = Tk()

v = IntVar()

Label(root, 
      text="""Choose a 
programming language:""",
      justify = LEFT,
      padx = 20).pack()
Radiobutton(root, 
            text="Python",
            padx = 20, 
            variable=v, 
            value=1).pack(anchor=W)
Radiobutton(root, 
            text="Perl",
            padx = 20, 
            variable=v, 
            value=2).pack(anchor=W)

mainloop()

上面代碼輸出如下窗口:


圖1

改進例子

很多情況下, 單選按鈕項目將不止是兩項. 在選項很多時, 逐個生成單選項的方法就顯得太笨了. 解決辦法如下例中所示, 我們預(yù)先定義了一個 list, 其元素中包含了按鈕文本及其對應(yīng)的選項值. 這樣我們就可以用一個循環(huán)來建立這組單選按鈕了.

from Tkinter import *

root = Tk()

v = IntVar()
v.set(1)  # initializing the choice, i.e. Python

languages = [
    ("Python",1),
    ("Perl",2),
    ("Java",3),
    ("C++",4),
    ("C",5)
]

def ShowChoice():
    print v.get()

Label(root, 
      text="""Choose your favourite 
programming language:""",
      justify = LEFT,
      padx = 20).pack()

for txt, val in languages:
    Radiobutton(root, 
                text=txt,
                padx = 20, 
                variable=v, 
                command=ShowChoice,
                value=val).pack(anchor=W)

mainloop()

上例運行后將顯示如下窗口:


圖2

指示器

除了使用默認的空心圓形作為選項條目, 我們也可以用一個文本框來展示選項. 將 indicatoron 選項設(shè)置為 0 即可達到該目的: 這表示單選按鈕不會有額外的單選指示器.
我們將上例中 Radiobutton 的創(chuàng)建代碼修改如下:

    Radiobutton(root, 
                text=txt,
                indicatoron = 0,
                width = 20,
                padx = 20, 
                variable=v, 
                command=ShowChoice,
                value=val).pack(anchor=W)

在上面的代碼中, 我們使用了 indicatoron 參數(shù) 和 width 參數(shù). 上例運行顯示如下:

圖3


譯者水平有限, 如有疏漏, 歡迎指正.
已獲得原作者授權(quán). 原文地址: Radiobuttons

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市杏愤,隨后出現(xiàn)的幾起案子味廊,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡帐萎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門胜卤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疆导,“玉大人,你說我怎么就攤上這事瑰艘∈枪恚” “怎么了肤舞?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵紫新,是天一觀的道長。 經(jīng)常有香客問我李剖,道長芒率,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任篙顺,我火速辦了婚禮偶芍,結(jié)果婚禮上充择,老公的妹妹穿的比我還像新娘。我一直安慰自己匪蟀,他們只是感情好椎麦,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著材彪,像睡著了一般观挎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上段化,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天嘁捷,我揣著相機與錄音,去河邊找鬼显熏。 笑死雄嚣,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的喘蟆。 我是一名探鬼主播缓升,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼履肃!你這毒婦竟也來了仔沿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤尺棋,失蹤者是張志新(化名)和其女友劉穎封锉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膘螟,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡成福,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了荆残。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奴艾。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖内斯,靈堂內(nèi)的尸體忽然破棺而出蕴潦,到底是詐尸還是另有隱情,我是刑警寧澤俘闯,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布潭苞,位于F島的核電站,受9級特大地震影響真朗,放射性物質(zhì)發(fā)生泄漏此疹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蝗碎。 院中可真熱鬧湖笨,春花似錦、人聲如沸蹦骑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽眠菇。三九已至辫呻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間琼锋,已是汗流浹背放闺。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留缕坎,地道東北人怖侦。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像谜叹,于是被迫代替她去往敵國和親匾寝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 雖然這是tk的教程荷腊,但是我個人還是比較推薦使用pyqt來寫窗口艳悔,實際上pyqt配合qtdesigner寫的窗口不僅...
    遺步看風景閱讀 40,113評論 3 39
  • 1、窗體 1女仰、常用屬性 (1)Name屬性:用來獲取或設(shè)置窗體的名稱猜年,在應(yīng)用程序中可通過Name屬性來引用窗體。 ...
    Moment__格調(diào)閱讀 4,548評論 0 11
  • 原系列地址: Python Tkinter 簡介 Entry 是 Tkinter 用來接收字符串等輸入的控件. 該...
    _Lyux閱讀 1,325評論 0 2
  • 什么是好股票疾忍?能幫我賺錢的就是好股票乔外。
    霸道_8a7f閱讀 59評論 0 0
  • 一、為什么要看小說《心理罪》一罩? 和朋友一起去看了電影版的《心理罪》杨幼。 超出預(yù)期的好看!廖凡影帝在聂渊,感覺整組演員的演...
    溫姬拉閱讀 633評論 0 2