3 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
這兩個(gè)小部件有不同的用途,應(yīng)該相應(yīng)地使用。
Radiobutton
允許從相互排斥的列表中選擇一個(gè)選項(xiàng)。Checkbutton
允許從列表中選擇任意數(shù)量的選項(xiàng)。
Radiobutton
像您一樣使用s 在這里是最合適的。
雖然毫無意義,但強(qiáng)制Checkbutton
s 表現(xiàn)得像Radiobutton
s 在技術(shù)上是可行的。
將Checkbutton
s 鏈接到同一個(gè)變量,但onvalue
為每個(gè)變量設(shè)置一個(gè)唯一的。
import tkinter as tk
root = tk.Tk()
variable = tk.IntVar(root)
for onvalue in range(1, 5 + 1):
checkbutton = tk.Checkbutton(
root,
onvalue=onvalue,
variable=variable,
)
checkbutton.pack()
root.mainloop()

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
復(fù)選按鈕和單選按鈕有不同的選項(xiàng),因?yàn)樗鼈冏霾煌氖虑椤?/p>
實(shí)例Checkbutton
不支持value
選項(xiàng)。相反,它有一個(gè)onvalue
和offvalue
選項(xiàng),用于指定小部件打開或關(guān)閉時(shí)的值。小部件也Checkbutton
需要有自己的獨(dú)特性。variable
如果您想限制用戶,使他們只能從多個(gè)值中選擇一個(gè)值,則Checkbutton
使用 a 是錯(cuò)誤的小部件。這正是 的用途Radiobutton
。單選按鈕用于排他性選擇,復(fù)選按鈕用于多選。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
如果您希望用戶只選擇一個(gè)復(fù)選框,則可以使用復(fù)選框。通過運(yùn)行此代碼并選擇該選項(xiàng),您就會(huì)明白這一點(diǎn)。我知道其他人已經(jīng)回答了你的問題。但也許我的回答可以幫助某人。
from tkinter import *
root = Tk()
#Same variable but different values
radiobutton_variable = IntVar()
Radiobutton(root, text="Radiobutton only one", variable = radiobutton_variable, value = 1).grid(row = 0, column = 0)
Radiobutton(root, text="Radiobutton only one", variable = radiobutton_variable, value = 2).grid(row = 0, column = 1)
#Same variable but different values
checkbutton_variable = IntVar()
Checkbutton(root, text="Checkbutton only one", variable = checkbutton_variable, onvalue = 3).grid(row = 1, column = 0)
Checkbutton(root, text="Checkbutton only one", variable = checkbutton_variable, onvalue = 4).grid(row = 1, column = 1)
#Same variable, same values or no value
#Select both radio button
both_select_radiobutton_variable = IntVar()
Radiobutton(root, text="radiobutton both", variable = both_select_radiobutton_variable).grid(row = 2, column = 0)
Radiobutton(root, text="radiobutton both", variable = both_select_radiobutton_variable).grid(row = 2, column = 1)
#Same variable, same values or no value
#Select both check button
both_select_checkbutton_variable = IntVar()
Checkbutton(root, text="Checkbutton both", variable = both_select_checkbutton_variable).grid(row = 3, column = 0)
Checkbutton(root, text="Checkbutton both", variable = both_select_checkbutton_variable).grid(row = 3, column = 1)
mainloop()
添加回答
舉報(bào)