《零基礎入門學習Python》第066講:GUI的終極選擇:Tkinter3
同樣,我們還是通過案例來講解。
一、Checkbutton
Checkbutton(多選框)。大家都知道什麼叫做“翻牌子”,今天的第一個例子就是來寫一個翻牌子的程序。
Checkbutton 就是我們常見的多選框按鈕,而下面要講的 Radiobutton 就是單選框按鈕。那大家覺得翻牌子程序應該是使用 Checkbutton 還是 Radiobutton 來實現呢?我個人認為哈,應該是 Checkbutton 。
我們首先來測試一下 Checkbutton ,來感受一下它的用法:
運行結果如下:
沒有按按鈕時: ->
點下按鈕的時候:-> 
點下按鈕的時候:-> 
當我們點下按鈕的時候,這個框框裡會出現一個小勾,為了更直觀的讓大家知道選中和未選中時v 的表現狀態,我們可以把它顯示出來,顯示在Label 標籤裡面。
運行結果如下:
沒有選中時: ->
選中的時候:-> 
選中的時候:-> 
有了這樣的基礎,我們就可以來寫我們的翻牌子程序了。
運行結果如下:

我們希望把所有的Checkbotton 左對齊:
通過設置pack 的anchor 選項,就可以實現了。anchor 選項是用於製定顯示位置的。
anchor 用法:
1. 控製文本(或圖像)在Button 中顯示的位置2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者"center" 來定位(ewsn 代表東西南北,上北下南左西右東)3. 默認值是"center"
b.pack(anchor = "w")

二、Radiobutton
Radiobutton(單選框),Radiobutton 的用法和Checkbutton 的用法基本一致,唯一不同的就是Radiobutton 要實現單選的效果,就是需要同一組內所有的Radiobutton 只能共享一個variable 選項,並且需要設置不同的value選項的值。
我們通過代碼來講解:
運行結果如下:

這裡有兩點需要注意的:
1、variable 選項只能設置為同一個變量,這裡都是v;
2、value 選項的值一定要不同,才能實現互測。
Radiobutton 的原理就是:你每一次點中一個按鈕,它就會把這個按鈕的value 給v,然後根據v 的值來選中對應的框。
同樣的,如果你有多個選項的話,我們仍然可以使用循環,使得代碼更加簡潔:
運行結果如下:

有人要提意見了:“我不喜歡前面的小圓圈,我有圓形恐懼症!”
沒問題,我們只需要加一個選項indicatoron = False。(indicatoron就是指示器,就是前面的小圓圈,把它設置為False,就不會顯示了。)
如下:

這樣不美觀,我們可以橫向填充按鈕。

三、LabelFrame
LabelFrame(標籤框架),這實際上是Frame 框架的進化版,從形態上來說,也就是添加了Label 的Frame,但是有了它,Checkbutton 和Radiobutton 的分組就變得簡單了。
運行結果如下:

0 留言:
發佈留言