python图形编程复选按钮和单选按钮详细说明_Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)...
單選框(Radiobutton)與復選框(Checkbutton)
thinter.Radiobutton(用于存放的父組件,屬性參數...)
thinter.Checkbutton(用于存放的父組件,屬性參數...)
具有以下屬性
anchor
設置組件中文字的對其方式
background(bg)
指定組件的背景色。
borderwidth(bd)
指定組件邊框的寬度。
bitmap
指定組件中的位圖。
font
指定組件中文本的字體。
foreground(fg)
指定組件的前
height
指定組件的高度。
image
指定組件中的圖片。
justify
指定組件中多行文本的對齊方式。
text
指定組件中的文本,可以使用“\n”表示換行。
value
指定組件被選中后(單選框)
onvalue
組件勾選狀態值(復選框)
offvalue
組件取消勾選狀態的值(復選框)
variable
指定組件所關聯的變量。需要使用tkinter.IntVar()或者tkinter.StringVar()創建的值
width
指定組件的寬度。
command
設置復選框操作的觸發命令(復選框)
indicatoron
缺省情況下為1,如果將這個屬性改為0,則其外觀是Sunken,表示按鈕的彈起或按下兩種狀態
textvariable
通過回調函數修改按鈕的值(復選框)
EG1:簡單的單選框
# 創建單選框,單選框的內容是text,內容對應的值是value,g根據value選擇
from tkinter import *
root = Tk()
radio1 = Radiobutton(root,text="選擇1",value=True)
radio1.grid()
radio2 = Radiobutton(root,text="選擇2",value=False)
radio2.grid()
radio3 = Radiobutton(root,text="選擇3",value=False)
radio3.grid()
root.mainloop()
實行結果:
EG2:
# EG3:(Radiobutton)
from tkinter import *
root = Tk()
v = IntVar()
v.set(3) # 在下面的variable,和radiobutton進行綁定,set的值和radiobutton組件中value設置的值比較,相同的那組是默認值(那個黑點的位置),set的范圍從0開始,如果set的值超出了下面for循環的范圍,沒有默認值
for i in range(4):
Radiobutton(root, variable=v, text="Radiobutton-{}".format(i), value=i).grid()
root.mainloop()
實行結果:
EG3:
# 補充,回調函數,重新設置數值
from tkinter import *
def callRadiobutton():
# 設置數值
v.set(1)
root = Tk()
v = IntVar()
# set函數是設置單選框中的初始值,set的參數和Radiobutton組件中的value比較,如果存在相同的情況,則為初始值
v.set(2)
# 三個單選框中都有相同的回調函數callRadiobutton,點擊單選框后調用callRadiobutton,重新設置三個單選框的數值
Radiobutton(root, variable=v, text="Radiobutton-{}".format(1), value=1,command=callRadiobutton).grid()
Radiobutton(root, variable=v, text="Radiobutton-{}".format(1), value=2,command=callRadiobutton).grid()
Radiobutton(root, variable=v, text="Radiobutton-{}".format(1), value=3,command=callRadiobutton).grid()
root.mainloop()
實行結果:
EG4:
# 創建兩個不同的組
from tkinter import *
root = Tk()
vlang = IntVar()
vos = IntVar()
vlang.set(1) # 第一個組初始值為1
vos.set(2) # 第一個組初始值為2
# 創建兩個組,不同的組,各個按鈕互不影響。
for i in [vlang, vos]:
for j in range(3):
Radiobutton(root, variable=i, text="Radiobutton_{}".format(j), value=j).grid()
root.mainloop()
實行結果:
EG6:
# EG6:如果同一個組中的按鈕使用相同的value,則這兩個按鈕的工作方式完全相同
from tkinter import *
root = Tk()
v = IntVar()
v.set(1)
#例子中共有4個alue為1的值,當選中其中的一個時,其他三個也會被選中;選中除了這四個只外的按鈕時,四個按鈕全部取消
for i in range(3):
Radiobutton(root, variable=v, text="Radiobutton_{}".format(i), value=1).grid()
for i in range(3):
Radiobutton(root, variable=v, text="Radiobutton_{}".format(i), value=i).grid()
root.mainloop()
實行結果:
EG7:
# EG6:與Checkbutton類似,每個Radiobutton可以有自己的處理函數,每當點擊按鈕時,系統會調用相應的處理函數
from tkinter import *
root = Tk()
v = IntVar()
v.set(3)
def r1():
print('call r1')
def r2():
print('call r2')
def r3():
print('call r3')
def r4():
print('call r4')
j = 2
# 將四個函數的引用作為一個臨時的列表,直接傳給單選框組件中的command
# 注意雖然同時可以選中兩個按鈕,但每次點擊按鈕,執行的代碼只有一次
for i in [r1, r2, r3, r4]:
Radiobutton(root, variable=v, text="Radiobutton", value=j, command=i).grid()
Radiobutton(root, variable=v, text="Radiobutton", value=j, command=i).grid()
j += 1
root.mainloop()
實行結果:
EG8:
# 8.Radiobutton另一個比較實用的屬性是indicatoron,缺省情況下為1,如果將這個屬性改為0,則其外觀是Sunken
# Radiobutton表示按鈕的彈起或按下兩種狀態
from tkinter import *
root = Tk()
v = IntVar()
v.set(1)
for i in range(3):
Radiobutton(root, variable=v, text="Radiobutton", value=i, indicatoron=0).grid()
root.mainloop()
實行結果:
Checkbutton篇
EG1:
# Checkbutton又稱為多選按鈕,可以表示兩種狀態:On和Off,可以設置回調函數,每當點擊此按鈕時回調函數被調用
# 1.一個簡單的Checkbutton例子
from tkinter import *
root = Tk()
Checkbutton(root, text="Checkbutton_1").grid()
Checkbutton(root, text="Checkbutton_2").grid()
Checkbutton(root, text="Checkbutton_3").grid()
root.mainloop()
實行結果:
EG2:
# 2.設置Checkbutton的回調函數
from tkinter import *
def call_Checkbutton_1():
print("call_Checkbutton_1")
def call_Checkbutton_2():
print("call_Checkbutton_2")
root = Tk()
# 只要是單擊,都會觸發調用對應的函數(不管Checkbutton的狀態如何,此回調函數都會被調用)
Checkbutton(root, text="Checkbutton_1", command=call_Checkbutton_1).grid()
Checkbutton(root, text="Checkbutton_2", command=call_Checkbutton_2).grid()
root.mainloop()
實行結果:
EG3:
# 3.通過回調函數改變Checkbutton的顯示文本text的值
from tkinter import *
def callCheckbutton():
v.set("hello Checkbutton")
root = Tk()
v = StringVar()
v.set("Checkbutton")
# 綁定v到Checkbutton的屬性textvariable
Checkbutton(root, text="Checkbutton", textvariable=v, command=callCheckbutton).grid()
root.mainloop()
實行結果:
EG4:
# 4.上述的textvariable使用方法與Button的用法完全相同,使用此例是為了區別Checkbutton的另外的一個屬性variable,
# 此屬性與textvariable不同,它是與這個控件本身綁定,Checkbutton自己有值:On和Off值,缺省狀態On為1,Off為0,
# variable選中的時候的數值為1,否則為0(多選擇時候,后臺可以獲得用戶信息)
from tkinter import *
root = Tk()
v = IntVar()
a = StringVar
def callCheckbutton():
print(v.get())
Checkbutton(root, variable=v, text="Checkbutton", command=callCheckbutton).grid()
root.mainloop()
實行結果:
EG5:
# 5.Checkbutton的值不僅僅是1或0,可以是其他類型的數值,可以通過onvalue和offvalue屬性設置Checkbutton的狀態值,
# 如下代碼將On設置為'python',Off值設置為'Tkinter',程序的打印值將不再是0或1,而是'Tkinter’或‘python
from tkinter import *
root = Tk()
root.title("Checkbutton")
v = StringVar()
def callCheckbutton():
print(v.get())
Checkbutton(root, variable=v, text="text-Checkbutton", onvalue="onvalue", offvalue="offvalue",
command=callCheckbutton).grid()
root.mainloop()
實行結果:
總結
以上是生活随笔為你收集整理的python图形编程复选按钮和单选按钮详细说明_Python_tkinter_单选框(Radiobutton)与复选框(Checkbutton)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python显示数据长度_Python数
- 下一篇: jupyter lab文档位置默认sys