【Python_PySide2学习笔记(十八)】勾选按钮QCheckBox类的基本用法

勾选按钮QCheckBox类的基本用法

    • 前言
    • 正文
    • 1、创建勾选按钮
    • 2、勾选按钮获取选中状态
    • 3、创建按钮组
    • 4、按钮组添加勾选按钮
    • 5、按钮组设置单选
    • 6、按钮组信号:选中状态改变
    • 7、按钮组获取所有勾选按钮
      • 7.1、获取勾选按钮对象
      • 7.2、获取勾选按钮文本
      • 7.3、获取勾选按钮ID
      • 7.4、按钮组设置多选时获取所有按钮的勾选状态

前言

此篇文章中介绍PySide2中 勾选按钮QCheckBox类的基本用法,包括 ”创建勾选按钮、勾选按钮获取选中状态、创建按钮组、按钮组添加勾选按钮、按钮组设置独占” 等,会持续进行更新,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。

正文

1、创建勾选按钮

		self.ckb1 = QCheckBox("勾选按钮1", self.window)self.ckb2 = QCheckBox("勾选按钮2", self.window)self.ckb3 = QCheckBox("勾选按钮3", self.window)self.ckb1.resize(150, 60)self.ckb2.resize(150, 60)self.ckb3.resize(150, 60)self.ckb1.move(350, 120)self.ckb2.move(350, 160)self.ckb3.move(350, 200)

在这里插入图片描述

2、勾选按钮获取选中状态

通过 checkState() 方法获取选中状态

        self.button.clicked.connect(self.btnClicked)def btnClicked(self):if self.ckb1.checkState():  # 判断勾选按钮1的选中状态self.textEdit.appendPlainText(f"勾选按钮1已经勾选")else:self.textEdit.appendPlainText(f"勾选按钮1未勾选")

在这里插入图片描述

3、创建按钮组

        self.ButtonGroup = QButtonGroup()  # 创建按钮组对象

4、按钮组添加勾选按钮

        self.ButtonGroup.addButton(self.ckb1, 0)  # 参数:QCheckButton IDself.ButtonGroup.addButton(self.ckb2, 1)self.ButtonGroup.addButton(self.ckb3, 2)

参数:
QCheckButton:勾选按钮
ID:自定义数字编号

5、按钮组设置单选

通过 setExclusive() 方法来控制是否只能单选一个选项。

		self.ButtonGroup.setExclusive(False)  # exclusive属性, 来控制是否只能单选一个选项。

6、按钮组信号:选中状态改变

如果用户操作点击了按钮组 QButtonGroup 中的一个按钮, QButtonGroup 就会发出 buttonClicked 信号,可以这样指定处理该信号的函数

		self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)

7、按钮组获取所有勾选按钮

7.1、获取勾选按钮对象

  1. 在QButtonGroup设置为单选情况下:通过 checkedButton() 方法即可获取选中的按钮对象

    		self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)def handleButtonClicked(self):self.textEdit.appendPlainText(f"按钮组按键状态改变:{self.ButtonGroup.checkedButton()}")
    

    在这里插入图片描述

  2. 在QButtonGroup设置为多选情况下:通过 buttons() 方法 查看按钮组中的所有勾选按钮

    		self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)def handleButtonClicked(self):for i in self.ButtonGroup.buttons(): #buttons():查看所有按钮组中的按钮self.textEdit.appendPlainText(f"按钮组按键状态改变:ID:{i}")
    

    在这里插入图片描述

7.2、获取勾选按钮文本

调用返回的按钮对象的 text() 方法得到勾选按钮文本

		self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)def handleButtonClicked(self):for i in self.ButtonGroup.buttons(): #buttons():查看所有按钮组中的按钮self.textEdit.appendPlainText(f"按钮组按键状态改变:{i.text()}")

在这里插入图片描述

7.3、获取勾选按钮ID

通过 checkedId() 方法即可获取选中按钮对象的ID

		self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)def handleButtonClicked(self):self.textEdit.appendPlainText(f"按钮组按键状态改变:ID:{self.ButtonGroup.checkedId()}")

在这里插入图片描述

7.4、按钮组设置多选时获取所有按钮的勾选状态

对所有该组中的按钮调用 isChecked() 方法 ,来判断。

		self.ButtonGroup.buttonClicked.connect(self.handleButtonClicked)def handleButtonClicked(self):for i in self.ButtonGroup.buttons(): #buttons():查看所有按钮组中的按钮self.textEdit.appendPlainText(f"{i.text()}的状态为:{i.isChecked()}")

在这里插入图片描述

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

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

相关文章

win11安装IIS步骤-已验证23.10.10

IIS服务使用 步骤一:打开控制面板 通过 控制面板— 程序— 启用或关闭Windows功能 — 选择Internet Information Services默认安装IIS,如下图步骤所示 步骤二:打开IIS服务 建议根据下图勾选,建议全选安装,以便后续发…

聊聊2023年怎么入局小游戏赛道?

一、微信小游戏赛道发展史 第一阶段:轻度试水期,2017~2019年 微信小游戏于2017年底上线,初期以轻度休闲为主,例如棋牌、合成消除以及益智相关游戏类型。一是开发门槛不高,产品可以快速上线; 二是大部分厂…

虹科方案 | 汽车CAN/LIN总线数据采集解决方案

全文导读:现代汽车配备了复杂的电子系统,CAN和LIN总线已成为这些系统之间实现通信的标准协议,为了开发和优化汽车的电子功能,汽车制造商和工程师需要可靠的数据采集解决方案。基于PCAN和PLIN设备,虹科提供了一种高效、…

mac(M1)卸载miniconda3

参考https://stackoverflow.com/questions/29596350/how-to-uninstall-mini-conda-python step1 因为我目前只有一个base环境,所以直接在这个环境中安装 anaconda-clean即可 conda install anaconda-clean然后继续输入 anaconda-clean如果不加–yes,那…

[nltk_data] Error loading stopwords: <urlopen error [WinError 10054]

报错提示&#xff1a; >>> import nltk >>> nltk.download(stopwords) 按照提示执行后 [nltk_data] Error loading stopwords: <urlopen error [WinError 10054] 找到路径C:\\Users\\EDY\\nltk_data&#xff0c;如果没有nltk_data文件夹&#xff0c;在…

《安富莱嵌入式周报》第324期:单对以太网技术实战,IROS2023迪士尼逼真机器人展示,数百万模具CAD文件下载,闭环步进电机驱动器,CANopen全解析

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程&#xff1a; 第8期ThreadX视频教程&#xff1a;应用实战&#xff0c;将裸机工程移植到RTOS的任务划分…

黑马点评-05缓存穿透问题及其解决方案,缓存空字符串或使用布隆过滤器

缓存穿透问题(缓存空) 缓存穿透的解决方案 缓存穿透(数据穿透缓存直击数据库): 缓存穿透是指客户端请求访问缓存中和数据库中都不存在的数据,此时缓存永远不会生效并且用户的请求都会打到数据库 数据库能够承载的并发不如Redis这么高&#xff0c;如果大量的请求同时访问这种…

基于YOLOv5、YOLOv8的火灾检测(超实用项目)

目录 1.简介 2.YOLO算法 3.基于YOLOv5、YOLOv8的火灾检测 视频已上传b站 YOLOv5/YOLOv8的火灾检测&#xff08;超实用项目&#xff09;_哔哩哔哩_bilibili 本文为系列专栏&#xff0c;包括各种YOLO检测算法项目、追踪算法项目、双目视觉、深度结构光相机测距测速三维测量项…

[鹏城杯 2022]简单的php - 无数字字母RCE(取反)【*】

[鹏城杯 2022]简单的php 一、解题流程二、思考总结 题目代码&#xff1a; <?php show_source(__FILE__);$code $_GET[code];if(strlen($code) > 80 or preg_match(/[A-Za-z0-9]|\|"||\ |,|\.|-|\||\/|\\|<|>|\$|\?|\^|&|\|/is,$code)){die( Hello);}e…

epoll 定时器

参考&#xff1a; Linux下使用epoll监听定时器-CSDN博客 但是这个用的是gettimeofday。 本人使用的是 #include <stdlib.h> #include<stdio.h> #include <sys/timerfd.h> #include <sys/epoll.h> #include <unistd.h> #include <sys/time.…

hbba网站下载国家标准/行业标准的方法

hbba网站是不提供下载按钮并且不支持右键的&#xff0c;那么如何下载呢&#xff1f; 1、首先看一下pdf有多少页&#xff0c;一般标准介绍上有写。 2、使用edge或google浏览器打开pdf预览页面&#xff0c;打开开发者模式&#xff0c;用小箭头指向第一页&#xff0c;这样就获取到…

短视频矩阵源码开发部署---技术解析

一、短视频SEO源码搜索技术需要考虑以下几点&#xff1a; 1. 关键词优化&#xff1a;通过研究目标受众的搜索习惯&#xff0c;选择合适的关键词&#xff0c;并在标题、描述、标签等元素中进行优化&#xff0c;提高视频的搜索排名。 2. 内容质量&#xff1a;优质、有吸引力的内…

Qt QGridLayout和QFormLayout案例分析

QGridLayout和QFormLayout是Qt中常用的布局管理器&#xff0c;可以用于在应用程序中设置控件的位置和大小。 QGridLayout网格布局(栅格布局) QGridLayout是一个网格布局管理器&#xff0c;可以将控件放置在一个二维网格中。在QGridLayout中&#xff0c;控件可以跨越多个行和列…

在原生html中使用less

引入less <link rel"stylesheet/less" href"./lessDemo.less" /><script src"./js/less.min.js"></script> less.min.js文件下载地址:https://github.com/less/less.js 注意&#xff1a;less文件在前&#xff0c;js文件在后…

LabVIEW玩转魔方

LabVIEW玩转魔方 使用LabVIEW创建一个3D魔方&#xff0c;并找出解谜题的秘密&#xff0c;给朋友留下深刻深刻的印象。游戏中内置的机制使每张脸都能独立转动&#xff0c;从而混合颜色。要解决难题&#xff0c;每个面必须是相同的纯色 魔方的奥秘在于它的简单性和不可解性。这是…

阶段六-Day02-Maven

一、学习Maven 使用Maven创建Web项目&#xff0c;并部署到服务器。 二、Maven介绍及加载原理 1. 介绍 Maven是使用Java语言编写的基于项目对象模型&#xff08;POM&#xff09;的项目管理工具。开发者可以通过一小段描述信息来管理项目的构建、报告和文档。 使用Maven可以…

【已解决】Python打包文件执行报错:ModuleNotFoundError: No module named ‘pymssql‘

【已解决】Python打包文件执行报错&#xff1a;ModuleNotFoundError: No module named pymssql 1、问题2、原因3、解决 1、问题 今天打包一个 tkinter pymssql 的项目的时候&#xff0c;打包过程很顺利&#xff0c;但是打开软件的时候&#xff0c;报错 ModuleNotFoundError: …

unity操作_刚体 c#

刚体Rigidbody 首先在场景中创建一个Plane 位置重置一下 再创建一个Cube 充值 y0.5 我们可以看出创建的Cube 和 Plane都自带碰撞器 Plane用的是网格碰撞器 我们可以通过网格世界看到不同的网格碰撞器 发生碰撞&#xff08;条件&#xff09;&#xff1a; 两个物体都有碰撞器 …

CentOS Integration SIG 正式成立

导读CentOS 董事会已批准成立 CentOS Integration Special Interest Group (SIG)。该小组旨在帮助那些在 Red Hat Enterprise Linux (RHEL) 或特别是其上游 CentOS Stream 上构建产品和服务的人员&#xff0c;验证其能否在未来版本中继续运行。 红帽 RHEL CI 工程师 Aleksandr…

IntelliJ IDEA 2023.1 版本可以安装了

Maven 的导入时间更加快了。 收到的有邮件提醒安装。 安装后的版本&#xff0c;其实就是升级下&#xff0c;并没有什么主要改变。 IntelliJ IDEA 2023.1 版本可以安装了 - 软件技术 - OSSEZMaven 的导入时间更加快了。 收到的有邮件提醒安装。 安装后的版本&#xff0c;其实就是…