当前位置: 首页 PyQt5按钮控件 QButtonGroup按钮组的使用
add-vip

QButtonGroup按钮组的使用

一、学习指导

QButtonGroup按钮组,从本质的角度来说按钮组并不像是一个控件,而像是一个抽象的类实例化出来的容器。但是又不和我们后面要学习的容器控件一样,它主要是用于按钮控件的特殊使用环境中。这里我们就通过实操来看看按钮组的妙用。

二、代码演示

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('1.png'))
btn1.move(60, 60)
btn1.resize(60, 35)
btn1.setChecked(True)
btn1.setStyleSheet('background-color:green')

btn2 = QRadioButton('女', window)
btn2.setIcon(QIcon('2.png'))
btn2.move(60, 120)
btn2.resize(60, 35)
btn2.setStyleSheet('background-color:green')
sex_group = QButtonGroup(window)  # 创建按钮组,放在父控件内
sex_group.addButton(btn1, 1)
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)
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))
# 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_())


相关文章