程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python tkinter - 第8章 單選按鈕控件(Radiobutton) 方法

編輯:Python

8.2 單選按鈕控件方法
以下為常用的方法:

方法描述deselect()清除單選按鈕選中選項。flash()在激活狀態顏色和正常顏色之間閃爍幾次單選按鈕,但保持它開始時的狀態。invoke()可以調用此方法來獲得與用戶單擊單選按鈕以更改其狀態時發生的操作相同的操作select()設置按鈕為選中。8.2.1 select()設置某一個單選按鈕為選中的狀態。比如,默認的情況是選中第一個定義的單選按鈕,我們可以通過select()指定特定的單選按鈕被選中。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
color=tk.StringVar()
color.set('red')
b1 = tk.Radiobutton(root,bg='red',text='紅色',
variable=color,value='red')
b1.pack()
b2 = tk.Radiobutton(root,text='藍色',bg='blue',
variable=color,value='blue')
b2.pack()
b3 = tk.Radiobutton(root,text='綠色',bg='green',
variable=color,value='green')
b3.pack()
b2.select()
root.mainloop()

結果:

8.2.2 deselect()
清除單選按鈕的選擇。比如初始的時候,是’紅色’的單選按鈕被選中,可以使用deselect()方法,取消該選擇。這個時候,沒有任何的單選按鈕被選中

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
color=tk.StringVar()
color.set('red')
b1 = tk.Radiobutton(root,bg='red',text='紅色',
variable=color,value='red')
b1.pack()
b2 = tk.Radiobutton(root,text='藍色',bg='blue',
variable=color,value='blue')
b2.pack()
b3 = tk.Radiobutton(root,text='綠色',bg='green',
variable=color,value='green')
b3.pack()
b1.deselect()
root.mainloop()

結果:

說明;此時的3個單選按鈕是沒有任何值被選中的,所以是一種不確定的狀態。此時color變量的值是空的,盡管在程序開始的部分設置color的值是‘紅色’,由於deselect()方法,color的值被清空。
8.2.3 flash()
在激活狀態顏色和正常顏色之間閃爍幾次單選按鈕,但保持它開始時的狀態。必須設置activeforeground或者activebackground中的任何一個或者全部,否則沒有效果。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
color=tk.StringVar()
color.set('red')
b1 = tk.Radiobutton(root,bg='red',text='紅色',activebackground='green',
activeforeground='yellow',variable=color,value='red')
b1.pack()
b2 = tk.Radiobutton(root,text='藍色',bg='blue',activebackground='red',
activeforeground='yellow',variable=color,value='blue')
b2.pack()
b3 = tk.Radiobutton(root,text='綠色',bg='green',activebackground='blue',
activeforeground='yellow',variable=color,value='green')
b3.pack()
def flash():
c=color.get()
if c== 'red':
b1.flash()
elif c=='blue':
b2.flash()
elif c=='green':
b3.flash()
else:
return
b5 = tk.Button(root,text='Flash',command=flash)
b5.pack()
root.mainloop()

8.2.4 invoke()
模擬點擊單選按鈕。調用此函數,可以選中相應的單選按鈕。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
color=tk.StringVar()
color.set('red')
b1 = tk.Radiobutton(root,bg='red',text='紅色',
variable=color,value='red')
b1.pack()
b2 = tk.Radiobutton(root,text='藍色',bg='blue',
variable=color,value='blue')
b2.pack()
b3 = tk.Radiobutton(root,text='綠色',bg='green',
variable=color,value='green')
b3.pack()
def invoke():
b3.invoke()
b5 = tk.Button(root,text='Invoke',command=invoke)
b5.pack()
root.mainloop()

結果:


說明:最開始選中的是紅色的按鈕。點擊’Invoke’按鈕後,系統調用invoke()方法,設置綠色按鈕被選中。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved