PySider2 中单选按钮QRadioButton 和按钮组QButtonGroup的使用、单选框的实现
程序员文章站
2022-03-15 15:06:02
1. 单选按钮QRadioButton 和按钮组QButtonGroup一个QRadioButton 是单选按钮,可以选中或取消。将多个QRadioButton按钮添加到QButtonGroup中,就是一个单选选项组。事件由 QButtonGroup 进行管理。1.1 单选按钮的创建parent:父容器from PySide2.QtWidgets import QRadioButtonbutton = QRadioButton("选项名", parent)#或button = QRa...
1. 单选按钮QRadioButton 和按钮组QButtonGroup
- 一个QRadioButton 是单选按钮,可以选中或取消。
- 将多个QRadioButton按钮添加到QButtonGroup中,就是一个单选选项组。事件由 QButtonGroup 进行管理。
1.1 单选按钮的创建
- parent:父容器
from PySide2.QtWidgets import QRadioButton
button = QRadioButton("选项名", parent)
#或
button = QRadioButton( parent)
button.setText("选项名")
1.2 使用QButtonGroup将多个单选按钮组成单选组
- button单选按钮
- id:自定义数字编号
from PySide2.QtWidgets import QRadioButton,QButtonGroup
btg=QButtonGroup()
btg.addButton(button,id)
btg.addButton(button,id)
btg.addButton(button,id)
1.3 信号:选中状态改变事件
- buttongroup:按钮组
- handleButtonClicked:事件函数
buttongroup.buttonClicked.connect(handleButtonClicked)
1.4 方法:获取按钮的文本内容 和 在单选组中的id
itemID=buttongroup.checkedButton()#获取选中的是第几个选项
itemText=buttongroup.checkedButton().text()#获取选项内容
butText=button.text()#获取该按钮的文本内容
butID=button.group().checkedButton()#获取自己所在选项组的id
1.5 方法:获取单选按钮当前状态
result=button.isChecked():#True(选中) False(没选中)
1.6 方法:改变选中状态
button.setCheckable(False)#取消选中
button.setCheckable(False)#选中
1.5 示例1
1.5.1 就一个单选按钮
from PySide2.QtWidgets import QApplication,QMainWindow,QRadioButton,QButtonGroup
app=QApplication()
#创建一个主窗口
window=QMainWindow()
window.resize(500,400)#设置尺寸
window.move(300,310)#设置位置
window.setWindowTitle("QButtonGroup测试")#设置窗口标题
#第一个单选组
rbt1 = QRadioButton(window)
rbt1.move(0, 0)
rbt1.setText("选项0")
#展示窗口
window.show()
app.exec_()
效果展示
1.6 示例2
两组单选组 互不冲突
from PySide2.QtWidgets import QApplication,QMainWindow,QRadioButton,QButtonGroup
app=QApplication()
#创建一个主窗口
window=QMainWindow()
window.resize(500,400)#设置尺寸
window.move(300,310)#设置位置
window.setWindowTitle("QButtonGroup测试")#设置窗口标题
def butClicked(item):
print("选中项的id为:",item.group().checkedId())#选中选在 选项组中的id。
print("选中项的名称为:%s\n"%item.text())#选中项的文本内容
#第一个单选组
rbt1 = QRadioButton(window)
rbt1.move(0, 0)
rbt1.setText("选项0")
rbt2 = QRadioButton(window)
rbt2.move(0, 20)
rbt2.setText("选项1")
rbt3 = QRadioButton(window)
rbt3.move(0, 40)
rbt3.setText("选项2")
btg1=QButtonGroup()#创建一个按钮组
btg1.addButton(rbt1,0)#将单选按钮添加到按钮组,组成单选组。
btg1.addButton(rbt2,1)
btg1.addButton(rbt3,2)
btg1.buttonClicked.connect(butClicked)#添加事件
#第二个单选组
rbt4 = QRadioButton("选项3",window)
rbt4.move(100, 0)
rbt5 = QRadioButton("选项4",window)
rbt5.move(100, 20)
rbt6 = QRadioButton("选项5",window)
rbt6.move(100, 40)
btg2=QButtonGroup()#创建一个按钮组
btg2.addButton(rbt4,3))#将单选按钮添加到按钮组,组成单选组。
btg2.addButton(rbt5,4)
btg2.addButton(rbt6,5)
btg2.buttonClicked.connect(butClicked)#添加事件
#展示窗口
window.show()
app.exec_()
效果展示:
通过下方动图可以说明,左右两个单选组是独立的。
1.6 不使用按钮组QButtonGroup,添加多个单选按钮的效果。
即父组件下的所有单选按钮都变成了一组。
本文地址:https://blog.csdn.net/dorlolo/article/details/110853488