入门 PyQt6 看过来(案例)14~ 分组

本文分享一个分组框功能,采用pyqt6里的QGroupBox​控件,效果如下:性别和专业分开为两个分组框内:

1 功能实现思路

ui页面布局设计

性别和专业要设计成两个分组框:

逻辑实现

引入信号和槽函数来实现点击单选按钮实现信号的触发,在控制台输出对应的内容。

2 UI代码部分

		#分别创建两个性别单选按钮self.rbNan=QRadioButton('男',self)self.rbNv=QRadioButton('女',self)
		#专业创建四个单选按钮self.rbJsj=QRadioButton('计算机',self)self.rbRjgc=QRadioButton('软件工程',self)self.rbTxgc=QRadioButton('通信工程',self)self.rbRgzn=QRadioButton('人工智能',self)

接下来把分别把性别和专业放到水平布局控件里:

		#创建两个内水平布局、1个外垂直布局self.hLayout1=QHBoxLayout()self.hLayout2=QHBoxLayout()#两个性别单选按钮加入内水平布局 1self.hLayout1.addWidget(self.rbNan)self.hLayout1.addWidget(self.rbNv)#4个专业选项按钮加入内水平布局 2self.hLayout2.addWidget(self.rbJsj)self.hLayout2.addWidget(self.rbRjgc)self.hLayout2.addWidget(self.rbTxgc)self.hLayout2.addWidget(self.rbRgzn)

之后创建两个分组框,分别对应性别和专业:

		#创建性别和专业单选按钮组self.gBox1=QGroupBox('性别',self)self.gBox2=QGroupBox('专业',self)

到这里,页面布局已经设计好了,后面开始实现功能。

  	#性别信号抽发点self.rbNv.toggled.connect(self.rbNxxFunc)#对应的槽函数	def rbNxxFunc(self):if self.rbNan.isChecked():print("男")else:print("女")
	#将专业列表项中每一个单选按钮关联它们共同的槽函数rbListFuncself.list=[self.rbJsj,self.rbRjgc,self.rbTxgc,self.rbRgzn][rb.clicked.connect(self.rbListFunc) for rb in self.list]#对应的槽函数def rbListFunc(self):for rb in self.list:if rb.isChecked():print(rb.text())

到此,基本上所有的功能就实现了。

3 完整代码

# -*- coding:utf-8 -*-
"""
------------------------------------------------
File Name: 分组框.py
Description:
Author: lzq
date:2024-07-28 16:25
------------------------------------------------
"""
import sys
from PyQt6.QtWidgets import QDialog, QPushButton, QVBoxLayout, QApplication, QWidget, QRadioButton, QHBoxLayout, \QGroupBoxclass MyWidget(QWidget):def __init__(self, parent=None):super(MyWidget, self).__init__(parent)self.setWindowTitle("分组框")self.rbJsj=QRadioButton('计算机',self)self.rbRjgc=QRadioButton('软件工程',self)self.rbTxgc=QRadioButton('通信工程',self)self.rbRgzn=QRadioButton('人工智能',self)#将列表项中每一个单选按钮关联它们共同的槽函数rbListFuncself.list=[self.rbJsj,self.rbRjgc,self.rbTxgc,self.rbRgzn][rb.clicked.connect(self.rbListFunc) for rb in self.list]#分别创建两个性别单选按钮self.rbNan=QRadioButton('男',self)self.rbNv=QRadioButton('女',self)self.rbNv.toggled.connect(self.rbNxxFunc)#女单选按钮关联槽函数 rbNxxFunc#创建两个内水平布局、1个外垂直布局self.hLayout1=QHBoxLayout()self.hLayout2=QHBoxLayout()self.vLayout =QVBoxLayout()self.layout_init()def layout_init(self):#两个性别单选按钮加入内水平布局 1self.hLayout1.addWidget(self.rbNan)self.hLayout1.addWidget(self.rbNv)#4个专业选项按钮加入内水平布局 2self.hLayout2.addWidget(self.rbJsj)self.hLayout2.addWidget(self.rbRjgc)self.hLayout2.addWidget(self.rbTxgc)self.hLayout2.addWidget(self.rbRgzn)#创建性别和专业单选按钮组self.gBox1=QGroupBox('性别',self)self.gBox2=QGroupBox('专业',self)self.gBox1.setLayout(self.hLayout1)self.gBox2.setLayout(self.hLayout2)self.vLayout.addWidget(self.gBox1)self.vLayout.addWidget(self.gBox2)self.rbNv.setChecked(True)self.setLayout(self.vLayout)def rbListFunc(self):for rb in self.list:if rb.isChecked():print(rb.text())def rbNxxFunc(self):if self.rbNan.isChecked():print("男")else:print("女")if __name__=='__main__':app = QApplication(sys.argv)w = MyWidget()w.show()sys.exit(app.exec())

自己可以尝试一下!很好玩的。


本文到此结束,有本事你就别点赞,别关注我。路老师一生清贫,上有老下有小,让我一个人默默的付出吧!

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

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

相关文章

搞懂数据结构与Java实现

文章链接:搞懂数据结构与Java实现 (qq.com) 代码链接: Java实现数组模拟循环队列代码 (qq.com) Java实现数组模拟栈代码 (qq.com) Java实现链表代码 (qq.com) Java实现哈希表代码 (qq.com) Java实现二叉树代码 (qq.com) Java实现图代码 (qq.com)

从区块链到股票市场的全方位布局,广辉团队创新引领共创财富未来!

广辉团队作为一家涉足互联网投资领域的团队,在短短几年内迅速崛起,成为行业中的佼佼者。这支团队汇聚了来自各行各业的商业精英,并在互联网金融领域创造了巨大的财富。业务范畴涵盖了资产管理、资本市场、消费金融、保险市场、零售银行及财富…

UDP通信 单播,广播,组播

UDP通信实现 #include <sys/types.h> #include <sys/socket.h> ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); - 参数&#xff1a; struct sockaddr *src_addr, socklen_t *addrlen…

数据库期末复习

数据库期末复习 分析题 1 &#xff08;1&#xff09;使用数据库系统可以大大提高应用开发的效率&#xff0c;方便用户的使用减轻数据库系统管理人员维护的负担&#xff0c;请回答数据库系统有哪些部分组成&#xff1f;什么是数据库管理系统&#xff0c;其主要功能包括哪些方而&…

vue3项目报错集合

目录 一、does not provide an export named default 一、does not provide an export named default 报错截图&#xff1a; 原因&#xff1a; vite对commonjs兼容性太差&#xff0c;导致无法引入jsoneditor&#xff0c;可以使用originjs/vite-plugin-commonjs插件解决。&am…

Cocos Creator2D游戏开发(7)-飞机大战(5)-让子弹飞

飞机大战(5)-碰撞及积分 参考敌机的生成 子弹由飞机生成,放在player_node节点子弹重复使用,要使用预制体;子弹新增了动画 ①创建一个预制体 命名为playerBullet_prefab ② 双击预制体将bullet1图片拖入预制体 保存,关闭(场景编辑器里面的) ③ 发射子弹 player加入代码 prop…

【网络安全】破解邀请码实现未经授权的访问和账户接管

未经许可&#xff0c;不得转载。 文章目录 前言1、邀请用户2、低级账户访问3、提取用户 ID 和 OTP4、准备字典5、攻击6、账户接管 前言 ExampleSpark&#xff08;化名&#xff09;是一个专为团队管理和项目协作而设计的强大平台。它提供了用于管理用户、项目和权限的综合工具。…

【华视电子CVR100A】 身份证读取与酒店收银系统源码整合:CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构

一、酒店系统连接身份证阅读器好处 在开房界面&#xff0c;点击读取身份证&#xff0c;可以自动读取姓名&#xff0c;性别&#xff0c;地址&#xff0c;身份证号码 1. 提高办理入住效率 - 传统的手动输入身份证信息繁琐且容易出错&#xff0c;一键读取能够快速准确地获取客人身…

机器学习算法——常规算法,在同的业务场景也需要使用不同的算法(一)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

【C语言报错已解决】Format String Vulnerability

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 在日常开发中&#xff0c;我们经常会遇到各种各样的bug&#xff0c;其中格式化字符串漏洞报错可能是最让人头疼的一种。这…

基于SpringBoot+Vue的地方美食分享网站(带1w+文档)

基于SpringBootVue的地方美食分享网站(带1w文档) 人类的进步带动信息化的发展&#xff0c;使人们生活节奏越来越快&#xff0c;所以人们越来越重视信息的时效性。以往的管理方式已经满足不了人们对获得信息的方式、方便快捷的需求。即地方美食分享网站慢慢的被人们关注。 项目简…

Redis集群启动步骤

前提&#xff1a;处理好配置文件。 一、通过配置文件启动三个Redis实例。 执行命令&#xff1a;redis-server /opt/redis/cluster/16381/16381.conf 二、因为 Redis 集群至少需要 3 个主节点。所以这三个都是主节点&#xff0c;暂不考虑从节点。 创建一个包含 3 个主节点的…

全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中异常层级与自定义异常类的实现

全网最适合入门的面向对象编程教程&#xff1a;27 类和对象的 Python 实现-Python 中异常层级与自定义异常类的实现 摘要&#xff1a; 本文主要介绍了在使用 Python 进行面向对象编程时&#xff0c;异常的层级和如何使用继承关系完成自定义自己项目中异常类&#xff0c;并以传…

刷题了:144.二叉树的前序遍历心|145.二叉树的后序遍历心|94.二叉树的中序遍历己

递归遍历 文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html#%E6%80%9D%E8%B7%AF 视频讲解:https://www.bilibili.com/video/BV1Wh411S7xt/?spm_id_from333.788&vd_sourcee70917aa6392827d1ccc8d85e1…

【Websim.ai】一句话让AI帮你生成一个网页

【Websim.ai】一句话让AI帮你生成一个网页 网站链接 websim.ai 简介 websim.ai接入了Claude Sonnet 3.5&#xff0c;GPT-4o等常用的LLM&#xff0c;只需要在websim.ai的官网指令栏中编写相关指令&#xff0c;有点类似大模型的Prompt&#xff0c;指令的好坏决定了网页生成的…

全网最全robotframework自动化测试环境搭建

一、前言 1、在2019年之前&#xff0c;robotframework-ride的版本一直是1.5.2.1&#xff0c;是2016年1月份的版本&#xff0c;只能安装在python2.7的环境上&#xff0c;导致如果想同时使用robotframework做测试且又需要python3环境编写python代码的小伙伴都需要在操作系统上安…

Open3D 计算去质心后的点云

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2处理后点云 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、…

linux运维脚本编写

目录 步骤1 系统基本信息的检查 步骤2 文件系统和磁盘信息的检查 步骤3 内存、cpu、进程信息的检查 1、内存信息检查 2、cpu信息检查 3、进程信息检查 步骤4 其他脚本 正文部分✌ 步骤1 系统基本信息的检查 巡检脚本 步骤2 文件系统和磁盘信息的检查 具体实现的shell脚本如…

NebulaGraph图数据库使用教程

一、NebulaGraph 是什么&#xff1f; NebulaGraph 是一款开源的图数据库&#xff0c;擅长处理千亿个顶点和万亿条边的超大规模数据集。 NebulaGraph 社区已成长为一个荟聚了众多用户、融合了各类图技术场景实践知识的活跃开源社区。你可以在其中与大家共同交流 NebulaGraph 周…

音视频开发入门很难?可能是你姿势不对

作为程序员&#xff0c;听到最烦的两个词一个是bug&#xff0c;在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「音视频开发的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大…