PySider2 中单选按钮QRadioButton 和按钮组QButtonGroup的使用、单选框的实现

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,添加多个单选按钮的效果。

即父组件下的所有单选按钮都变成了一组。
在这里插入图片描述

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值