Pyside6-第五篇-单选按钮QRadioButton

简介: Pyside6-第五篇-单选按钮QRadioButton

今天是Pyside6的第五篇内容。一起来看单选按钮。

QRadioButton。

class QRadioButton(QAbstractButton):
    """
    QRadioButton(self, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None
    QRadioButton(self, text: str, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None
    """

根据源码提示,很明显了,跟前面几个类似

import sys
from PySide6.QtWidgets import QApplication, QWidget, QRadioButton
class Radio(QWidget):
    def __init__(self):
        super(Radio, self).__init__()
        self.initUI()
    def initUI(self):
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('QRadioButton')
        btn_radio_man = QRadioButton("男", self)
        btn_radio_man.move(20, 20)
        btn_radio_woman = QRadioButton(self)
        btn_radio_woman.setText("女")
        btn_radio_woman.move(20, 40)
        self.show()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Radio()
    sys.exit(app.exec())

它跟复选框不同的是,它默认情况下只能单选(有点废话),不允许多选。

设置多选.setAutoExclusive

它也是支持多选的

import sys
from PySide6.QtWidgets import QApplication, QWidget, QRadioButton
class Radio(QWidget):
    def __init__(self):
        super(Radio, self).__init__()
        self.initUI()
    def initUI(self):
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('QRadioButton')
        btn_radio_man = QRadioButton("男", self)
        btn_radio_man.move(20, 20)
        btn_radio_woman = QRadioButton(self)
        btn_radio_woman.setText("女")
        btn_radio_woman.move(20, 40)
        btn_radio_woman.setAutoExclusive(False)     # 排他性
        self.show()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Radio()
    sys.exit(app.exec())

设置图标.setIcon

from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication, QWidget, QRadioButton
class Radio(QWidget):
    def __init__(self):
        super(Radio, self).__init__()
        self.initUI()
    def initUI(self):
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('QRadioButton')
        btn_radio_man = QRadioButton("男", self)
        btn_radio_man.setIcon(QIcon("图标.png"))  # 设置图标
        btn_radio_man.move(20, 20)
        self.show()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Radio()
    sys.exit(app.exec())

示例-多个单选

有的时候会存在2个以上的单选,怎么解决排他性呢

我又想选是或者否,又想选择男或者女,怎么办。

import sys
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup
class Radio(QWidget):
    def __init__(self):
        super(Radio, self).__init__()
        self.initUI()
    def initUI(self):
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('QRadioButton')
        # 创建按键组
        QBG1 = QButtonGroup(self)
        QBG2 = QButtonGroup(self)
        btn_radio_man = QRadioButton("男", self)
        btn_radio_man.setIcon(QIcon("图标.png"))  # 设置图标
        btn_radio_man.move(20, 20)
        QBG1.addButton(btn_radio_man, 1)  # 将按钮添加进按钮组
        btn_radio_woman = QRadioButton(self)
        btn_radio_woman.setText("女")
        btn_radio_woman.move(20, 40)
        QBG1.addButton(btn_radio_woman, 2)  # 将按钮添加进按钮组
        btn_radio_yes = QRadioButton("是", self)
        btn_radio_yes.move(60, 20)
        QBG2.addButton(btn_radio_yes, 1)    # 将按钮添加进按钮组
        btn_radio_no = QRadioButton("否", self)
        btn_radio_no.move(60, 40)
        QBG2.addButton(btn_radio_no, 2) # 将按钮添加进按钮组
        self.show()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Radio()
    sys.exit(app.exec())

这样就能多个单选多选了。用到了另一个类方法QButtonGroup,注意上述代码没写排他性。


最后,源代码放在了gitee上了

本章gitee地址:https://gitee.com/qinganan_admin/Pyside6_Information/blob/master/%E7%AC%AC%E4%BA%8C%E7%AB%A0%EF%BC%8C%E6%8C%89%E9%92%AE/QRadioButton.py

目录
相关文章
Pyside6-第四篇-QCheckBox复选框
Pyside6-第四篇-QCheckBox复选框
1299 0
Pyside6-第四篇-QCheckBox复选框
|
容器
Pyside6-第十三篇-布局(最后一章废话-理论篇)
Pyside6-第十三篇-布局(最后一章废话-理论篇)
1149 0
Pyside6-第八篇-QLabel文本标签
Pyside6-第八篇-QLabel文本标签
795 0
Pyside6-第七篇-QLineEdit文本行编辑(内设案例)
Pyside6-第七篇-QLineEdit文本行编辑(内设案例)
1549 0
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
380 7
Pyside6-第二篇-QPushButton一个普通按钮
Pyside6-第二篇-QPushButton一个普通按钮
558 0
|
数据安全/隐私保护
Pyside6实操笔记(一):系统页面跳转
本文介绍了如何使用Pyside6实现系统页面跳转,包括登录界面跳转到注册界面的代码实现。关键步骤包括创建空窗口、编写跳转逻辑,并提供了完整的登录和注册窗口代码。此外,还涉及了国际化、主题色设置和窗口特效等高级功能。
528 0
Pyside6-第三篇-QToolButton一个的按钮
Pyside6-第三篇-QToolButton一个的按钮
624 0
|
XML JSON Ubuntu
Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto-py-to-exe)
本文介绍了使用Nuitka、PyInstaller和auto-py-to-exe三种工具将Python的PyQt/PySide6应用打包成exe文件的方法。提供了详细的安装步骤、打包命令和参数说明,适合新手学习和实践。
4334 0
Pyside6-第六篇-各按钮的信号与槽
Pyside6-第六篇-各按钮的信号与槽
579 0