8.2 單選按鈕控件方法
以下為常用的方法:
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()方法,設置綠色按鈕被選中。
ArcGIS10.7 Use python Script c
Take the following picture as