1.基本概念
sex_group = QButtonGroup(window) # 1.創建按鈕組,放在父控件內,跟按鈕同一級別
sex_group.addButton(btn1, 1) #2.添加按鈕
sex_group.addButton(btn2, 2)
2.代碼
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('QButtonGroup - PyQt5中文網')
window.resize(600, 450)
window.move(300, 300)
btn1 = QRadioButton('男', window)
btn1.setIcon(QIcon('aaa.png'))
btn1.move(60, 60)
btn1.resize(100, 35)
btn1.setChecked(True)
btn1.setStyleSheet('background-color:green')
btn2 = QRadioButton('女', window)
btn2.setIcon(QIcon('aaa.png'))
btn2.move(60, 120)
btn2.resize(100, 35)
btn2.setStyleSheet('background-color:green')
sex_group = QButtonGroup(window) # 1.創建按鈕組,放在父控件內,跟按鈕同一級別
sex_group.addButton(btn1, 1) #2.添加按鈕
sex_group.addButton(btn2, 2)
btn3 = QRadioButton('是', window)
btn3.move(200, 60)
btn3.resize(60, 35)
btn3.setStyleSheet('background-color:green')
btn4 = QRadioButton('否', window)
btn4.move(200, 120)
btn4.resize(60, 35)
btn4.setStyleSheet('background-color:green')
group2 = QButtonGroup(window) #按鈕3,4為一組
group2.addButton(btn3, 3)
group2.addButton(btn4, 4)
print(sex_group.buttons()) # 獲取組中所有按鈕
print(sex_group.button(1)) # 獲取組中ID=1的按鈕
print(sex_group.checkedButton()) # 獲取組中選中按鈕
# 如果不設置按鈕ID,按鈕ID會默認為-1,並逐個遞減
# 從組中移除按鈕,注意這時候的互斥關系
# sex_group.removeButton(btn2)
# 按鈕ID設置,放在組中設置
group2.setId(btn3, 3)
group2.setId(btn4, 4)
print(group2.id(btn4)) #獲取按鈕的id
print(group2.checkedId()) # 沒有選中的話結果是-1
# 獨占設置
group2.setExclusive(True) #互斥
# 可用信號
def test(val) :
print(val)
# group2.buttonToggled.connect(test) #哪個按鈕被切換了,就打印哪個
# 這里會傳出兩個信號,下面是選擇信號的方法[int] or [QAbstractButton]
group2.buttonClicked[QAbstractButton].connect(test)#哪個被點擊了,就打印哪個
# group2.buttonPressed[int].connect(test)
# group2.buttonReleased.connect(test)
window.show()
sys.exit(app.exec_())
3.效果
