欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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_()

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

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_()

效果展示:
通过下方动图可以说明,左右两个单选组是独立的。PySider2 中单选按钮QRadioButton 和按钮组QButtonGroup的使用、单选框的实现

1.6 不使用按钮组QButtonGroup,添加多个单选按钮的效果。

即父组件下的所有单选按钮都变成了一组。
PySider2 中单选按钮QRadioButton 和按钮组QButtonGroup的使用、单选框的实现

本文地址:https://blog.csdn.net/dorlolo/article/details/110853488

相关标签: python