Pyside6-第五篇-单选按钮QRadioButton

news2025/1/15 20:51:31

今天是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())
a728081ed78dfdafd4bf937c171b788d.png

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

设置多选.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个以上的单选,怎么解决排他性呢

ed41c8a69b322868c9cecdcd9338ed32.png

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

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())
f09cb2f106eba3398d809f6c7d24376b.png

这样就能多个单选多选了。用到了另一个类方法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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9.wxss

wxss基本满足所有css,并在css的基础上增加了 rpx 尺寸单位import 导入样式 目录 1 rpx 2 import 3 全局样式与局部样式 4 样式权重 1 rpx rpx(responsive pixel),中文名叫响应像素,它是用来解决屏幕适配的尺寸单位,它…

Flink第九章:Flink CEP

系列文章目录 Flink第一章:环境搭建 Flink第二章:基本操作. Flink第三章:基本操作(二) Flink第四章:水位线和窗口 Flink第五章:处理函数 Flink第六章:多流操作 Flink第七章:状态编程 Flink第八章:FlinkSQL Flink第九章:Flink CEP 文章目录 系列文章目录前言一、简单案例1.Logi…

Linux高性能服务器编程|阅读笔记:第11章 - 定时器

目录 简介系列笔记11.1 socket选项SO_RCVTIMEO和SO_SNDTIMEO11.2 SIGALRM信号11.2.1 基于升序链表的定时器11.2.2 处理非活动连接11.3 I/O复用系统调用的超时参数11.4 高性能定时器11.4.1 时间轮11.4.2 时间堆结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方…

光储存技术及原理

描述 信息资料迅速增长是当今社会的一大特点。有人统计,科技文献数量大约每7年增加1倍,而一般的情报资料则以每2年~3年翻一番的速度增加。大量资料的存储、分析、检索和传播,迫切需要高密度、大容量的存储介质和管理系统。 1898年荷兰的Vald…

Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路

本文章实现最简单全面的Jenkinsdockerspringboot 一键自动部署项目,步骤齐全,少走坑路。 环境:centos7git(gitee) 简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现…

javaScript蓝桥杯-----芝麻开门

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 在阿里巴巴和四十大盗的故事中,阿里巴巴因为无意中知道了开门的咒语人生发生了翻天覆地的变化,四十大盗也因为咒语的泄露最终丧命。芝麻开门的咒语作为重要的信息推动着故事的发展。下面由你来…

初识网络之TCP网络套接字

目录 一、TCP常用网络接口 1. 监听服务器 2. 接收链接 3. 发起连接 二、实现一个简单的tcp程序 1. 日志函数 2. 服务端文件 2.1 .hpp文件 2.2 .cpp文件 3. 客户端文件 3.1 .hpp文件 3.2 .cpp文件 4. 程序测试 三、实现支持多个用户并发访问的tcp程序 1. 当前程序…

解决Dockerfile错误: ERROR [3/3] RUN yum install -y wget vim net-tools

RUN yum install -y wget vim net-tools该命令是在使用容器编排工具(如Docker)的Dockerfile文件中执行的。它尝试安装一些常用的软件包,如wget、vim、net-tools。根据错误消息,执行此命令时发生了3个错误。 可能的原因包括&#…

chatgpt赋能python:Python去除非法字符:让你的数据更干净、更有效

Python去除非法字符:让你的数据更干净、更有效 在处理数据时,非法字符是常见的问题。它们可能是一些无意义的符号、特殊字符或非常规字符等等。如果不被正确处理,这些非法字符可能会给你带来麻烦,如导致脚本失败、破坏数据完整性…

LeetCode中等题合集 python

目录 3. 无重复字符的最长子串53. 最大子数组和80. 删除有序数组中的重复项 II442. 数组中重复的数据209. 长度最小的子数组59. 螺旋矩阵 II24. 两两交换链表中的节点19. 删除链表的倒数第 N 个结点142. 环形链表 II 3. 无重复字符的最长子串 滑动窗口,类似的题目还…

Biological Psychiatry:利用TMS-EEG识别难治性抑郁症间歇性θ脉冲刺激的神经生理标志物

前言 难治性抑郁症(TRD)是指在经过足够疗程的药物治疗或心理治疗后,症状没有得到改善的重度抑郁。大约有30%的重度抑郁症(MDD)属于难治性抑郁症。重复经颅磁刺激(rTMS)可引起大脑皮层兴奋或抑制性的改变,是TRD的有效干预措施。间歇性θ脉冲刺激(iTBS)一…

ClickHouse 基础

ClickHouse是2016年开源的列式存储数据库(DBMS),使用C语言编写,主要用于在线分析处理查询OLAP,能够使用SQL查询实时生成分析数据报告。 一、列式存储 以下面的Tabel为例 IDNameGender1吴彦祖男2刘亦菲女3陈冠希男 …

INT8 中的稀疏性:加速的训练工作流程和NVIDIA TensorRT 最佳实践

INT8 中的稀疏性:加速的训练工作流程和NVIDIA TensorRT 最佳实践 文章目录 INT8 中的稀疏性:加速的训练工作流程和NVIDIA TensorRT 最佳实践结构稀疏量化在 TensorRT 中部署稀疏量化模型的工作流程案例研究:ResNet-34要求第 1 步:…

JDK17新特性 即将成为主流的JDK 深入了解

文章目录 Switch 语句增强优化字符串拼接代码instanceof增强密封类(限制继承类)ZGC垃圾收集器 对于JDK17比较明显的特性 总结 Switch 语句增强 首先就是简化了Switch语句: 去掉了break及可以直接给返回值赋值。并且再匹配多个值的时候也做了…

AI 导致留学中介文书老师痛失万元月收入?是真的吗?

近日,总部位于伦敦,但在国内多个城市设有分公司的留学服务机构老板张冶告诉在接受记者采访时,他们对留学英国的人士提供的本硕博申请、论文润色、挂科申诉等业务都受到了ChatGPT的影响,甚至有业务线直接萎缩60%以上,有…

【Python】Python系列教程-- Python3 列表(十三)

文章目录 前言访问元组修改元组删除元组元组运算符元组索引,截取元组内置函数关于元组是不可变的 前言 往期回顾: Python系列教程–Python3介绍(一)Python系列教程–Python3 环境搭建(二)Python系列教程–…

如何打造高效的IT服务中心

官方网站 www.itilzj.com 文档资料: wenku.itilzj.com 引言 在当今数字时代,IT服务越来越成为企业发展的关键和优势。高效的IT服务中心能够提高员工生产力,改善客户体验,降低IT成本,并为企业数字化转型奠定良好的基础。本文将介绍…

Unity制作二次元卡通渲染角色材质

Unity制作二次元材质角色 大家好,我是阿赵。接下来准备开一个系列,讲一下二次元卡通角色的渲染。   先来看看成品,我从网上下载了著名游戏《罪恶装备》里面的一个角色模型。在没有做材质之前,把贴图赋予上去,给一个U…

3、数据库:Oracle部署 - 系统部署系列文章

Oracle数据库的安装,以前写过一篇,这次将新版的安装再记录一次,让读者能够有所了解,笔者也能够记录下最新版的安装过程。 一、数据库下载; Oracle最新版目前在官网是19c,从下面这个链接进去下载便可。 http…

java的UDP(二)

文章目录 1. DatagramSocket类2. 简单的UDP客户端3. DatagramChannel 1. DatagramSocket类 要收发DatagramPacket,必须打开一个数据报Socket。在java中,数据报Socekt通过DatagramSocekt类创建和访问。服务器Socket需要指定绑定端口,而用户端…