QCheckBoxQRadioBoxQComboBoxQSlider

QCheckBox

QCheckBox 是 Qt 框架中一个常用的控件,用于创建一个可以勾选或取消勾选的复选框。它通常用于表示选项的开/关状态

autoExclusive 是一个与单选按钮(QRadioButton)相关的属性。这个属性决定了同一个父窗口下的单选按钮是否自动形成一个互斥的组,即在这个组中,任何时候只能有一个按钮被选中。

源码

测试代码

  • 触发时机

    • clicked:当按钮被点击时触发,不管状态是否改变。
    • toggled:当按钮的选中状态改变时触发。

QButtonGroup

  • 按钮的逻辑分组QButtonGroup 允许你将多个按钮(如 QPushButtonQRadioButtonQCheckBox 等)逻辑上分组在一起。这意味着你可以管理这些按钮的行为,使它们作为一个单元进行交互。

  • 单选与多选

    • 对于 QRadioButton 类型的按钮,QButtonGroup 默认使组内的按钮表现为单选(只能有一个按钮被选中)。
    • 对于 QCheckBox 类型的按钮,QButtonGroup 允许多选(可以选中多个按钮)。
  • 信号QButtonGroup 提供了几个有用的信号,如 buttonClicked(QAbstractButton *),当组内的任何按钮被点击时发出。这样,你可以仅通过监视组的信号,而不是每个单独按钮的信号,来简化事件处理逻辑。

  • 按钮的唯一性:在一个 QButtonGroup 中,每个按钮可以有一个唯一的标识符(通常是一个整数)。这使得你可以通过标识符来引用和区分不同的按钮。

  • 布局无关QButtonGroup 是一个不可视的对象,它不提供任何用户界面或布局功能。它仅用于管理按钮的逻辑和行为。

QRadioBox

  • 基本使用QRadioButton 允许用户从一组选项中选择一个。当一个单选按钮被选中时,同一组内的其他单选按钮(通常是同一个父窗体或 QButtonGroup 中的按钮)会自动被取消选中。

  • 创建和配置

    • 可以通过代码或使用 Qt Designer 来创建 QRadioButton
    • 可以设置按钮的文本、图标、状态(选中/未选中)等。
  • 信号

    • clicked():当用户点击单选按钮时发出。
    • toggled(bool):当单选按钮的选中状态改变时发出,无论是通过用户交互还是程序设置。

QComboBox

QComboBox 是 Qt 框架中的一个控件,用于在下拉列表中显示一组选项。用户可以从列表中选择一个选项,也可以输入一个值(如果 QComboBox 被设置为可编辑的)。QComboBox 非常适用于需要从一组预定义选项中选择一个选项的情况。

源码

常用方法

  • void addItem(const QString &text):添加一个带有指定文本的选项。
  • void addItems(const QStringList &texts):添加一个字符串列表中的多个选项。
  • QString currentText() const:返回当前选定选项的文本。
  • int currentIndex() const:返回当前选定选项的索引。
  • void setEditable(bool editable):设置 QComboBox 是否可编辑。

 

QVariant

Q_DECLARE_METATYPE 是 Qt 框架中的一个宏,用于在 Qt 的元对象系统中声明任何非 Qt 类型。这样声明的类型可以用于 Qt 的信号和槽机制,以及其他需要类型信息的功能,如属性系统、变体类 QVariant 等。

当你想要在 Qt 的信号和槽中使用自定义类型,或者想要将自定义类型存储在 QVariant 中时,就需要使用 Q_DECLARE_METATYPE

QComboBox信号

activated 信号

  • 触发时机:当用户从下拉列表中选择一个选项时,activated 信号被触发。这个信号只有在用户的操作导致选项改变时才会发出,即通过鼠标点击或键盘选择。

  • 常见用途activated 通常用于响应用户的直接交互,如当用户选择了一个新的选项时执行特定的操作。

  • 版本:有两个版本的 activated 信号:

    • void activated(int index):发送选项的索引。
    • void activated(const QString &text):发送选项的文本。

currentIndexChanged 信号

  • 触发时机:无论当前选中的项是通过用户操作还是通过程序代码更改的,currentIndexChanged 信号都会被触发。它更广泛地反映了 QComboBox 选项的任何改变。

  • 常见用途:这个信号常用于更新与 QComboBox 选项相关联的数据或状态,不管这个改变是如何引起的。

  • 版本:同样有两个版本的 currentIndexChanged 信号:

    • void currentIndexChanged(int index):发送选项的索引。
    • void currentIndexChanged(const QString &text):发送选项的文本。

QSlider

常用方法

  • void setMinimum(int):设置滑动条的最小值。
  • void setMaximum(int):设置滑动条的最大值。
  • void setRange(int min, int max):一次性设置滑动条的最小值和最大值。
  • void setValue(int):设置滑动条的当前值。
  • int value() const:获取滑动条的当前值。
  • void setOrientation(Qt::Orientation):设置滑动条的方向(水平或垂直)。

SingleStep

  • 定义singleStep 属性定义了当用户使用箭头键或类似的小幅度调节控件时,控件值改变的步长。
  • 用途:这个属性通常用于精细调节。例如,在 QSlider 中,当用户点击滑块两边的小箭头时,滑块移动的量就是由 singleStep 决定的。
  • 设置方法:使用 setSingleStep(int step) 方法来设置这个值。

PageStep (SinglePage)

  • 定义pageStep(在某些上下文中可能称为 singlePage)属性定义了当用户执行更大幅度的调整时,如点击滑块轨道,控件值改变的步长。
  • 用途:这个属性用于大幅度调节。在 QSlider 控件中,点击滑块轨道(但不是滑块本身)会使滑块移动一个 pageStep 的量。
  • 设置方法:使用 setPageStep(int step) 方法来设置这个值

源码

信号

  • valueChanged(int):当滑块的值改变时发出。
  • sliderMoved(int):当用户拖动滑块时发出。
  • sliderPressed()sliderReleased():当用户按下或释放滑块时发出。

qss样式

QSlider::groove { /*滑动槽*/
border: 1px solid #999999;
height: 28px;
background: rgba(155,155,155,200);
border-radius: 10px;
}

QSlider::handle { /*滑动把手*/
background: rgba(255,0,0,200);
width: 20px;
margin: -10px 0;
border: 1px solid rgba(255,0,0,200);
border-radius: 10px;
}



QSlider重载鼠标事件

QMouseEvent 是 Qt 中一个表示鼠标事件的类。这个类提供了关于鼠标操作的详细信息,比如点击、释放、双击和移动。当用户使用鼠标与基于 Qt 的应用程序交互时,就会产生鼠标事件。

主要特性

  1. 位置信息QMouseEvent 提供了鼠标事件发生时的屏幕坐标和窗口坐标。

  2. 按钮状态:它可以告诉你事件是由哪个鼠标按钮触发的(左键、右键、中键等),以及在事件发生时其他鼠标按钮的状态。

  3. 修饰符键状态QMouseEvent 还可以提供事件发生时修饰符键(如Shift、Ctrl、Alt)的状态。

常用方法

  • button():返回引起事件的按钮。
  • buttons():返回事件发生时被按下的所有鼠标按钮。
  • pos():返回鼠标事件发生的位置。
  • globalPos():返回鼠标事件发生时的全局位置,即屏幕坐标。

事件处理

在 Qt 中,鼠标事件通常在 QWidget 或其子类中处理,通过重写以下方法之一:

  • mousePressEvent(QMouseEvent *event):当鼠标按钮被按下时调用。
  • mouseReleaseEvent(QMouseEvent *event):当鼠标按钮被释放时调用。
  • mouseDoubleClickEvent(QMouseEvent *event):当鼠标按钮被双击时调用。
  • mouseMoveEvent(QMouseEvent *event):当鼠标在组件上移动时调用。

在 Qt 的 QMouseEvent 类中,x() 函数返回鼠标事件发生时的鼠标位置的水平坐标(即 X 坐标)。这个坐标是相对于接收事件的窗口小部件的左上角的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++干货铺】STL中set和map的介绍和使用

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 序列式容器 关联式容器 键值对 树形结构的关联式容器 set set的介绍 set的使用 set的模板参数列表 set的构造 ​编辑 set的容量 set的删除和查找 mult…

125 验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是 回文串 ,返回 true ;否则&#…

软件测试/测试开发丨Python常用数据结构-列表list

列表的定义 列表是有序的可变元素的集合,使用中括号[ ]包围,元素之间用逗号分隔;列表是动态的,可以随时扩展和收缩;列表是异构的,可以同时存放不同类型的对象;列表允许出现重复的元素。 列表的…

电子企业实施MES管理系统需要多少预算

在当今高度自动化的工业环境中,MES管理系统已成为提升生产效率、优化资源配置、确保产品质量的关键工具。对于电子企业而言,实施MES管理系统不仅可以提升生产过程的透明度,还能有效降低成本,增强市场竞争力。然而,企业…

SV接口的驱动和采样_2023.12.27】

cb 使用cloking block进行信号的同步 在cloking block,所有信号的采样和驱动,都是和时钟同步的 clocking cb (posedge clk); input grant; output request; endclocking接口同步 用和wait来同步测试平台中的信号 bus.cb; 接口…

uboot安装操作系统

FT1500A 刀片机uboot安装系统 外接sata盘的方式: 准备一个带系统的sata盘(系统必须支持这个硬件不然启不来,uboot不需要改什么默认进这个系统),把iso与脚本harddisk_copy-noarch_20160711.sh拷进去 通过mobaxterm或…

《Python》:深拷贝、浅拷贝、赋值之间的关系(附可变与不可变)【用图文讲清楚!】

背景 想必大家面试或者平时学习经常遇到问python的深拷贝、浅拷贝和赋值之间的区别了吧?看网上的文章很多写的比较抽象,小白接收的难度有点大,于是乎也想自己整个文章出来供参考 可变与不可变 讲深拷贝和浅拷贝之前想讲讲什么是可变数据类型…

Kubernetes 学习总结(43)—— Kubernetes 从提交 deployment 到 pod 运行的全过程

当用户向 Kubernetes 提交了一个创建 deployment 的请求后,Kubernetes 从接收请求直至创建对应的 pod 运行这整个过程中都发生了什么呢? kubernetes 架构简述 在搞清楚从 deployment 提交到 pod 运行整个过程之前,我们有先来看看 Kubernete…

【unity学习笔记】配置模型,实现眨眼和口型效果

一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型(.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。(VRM-0.116.0_0f6c) 3.将univrm导入到工程中(assets)。 三…

Vue - 实现文件导出文件保存下载

1 文件导出:使用XLSX插件 需求背景:纯前端导出,如 在前端页面勾选部分表格数据,点击"导出"按钮导出Excel文件。 实现思路: 1.通过XLSX插件的 XLSX.utils.book_new()方法,创建excel工作蒲对象wb…

基于YOLOv7算法的高精度实时行人打电话检测系统(PyTorch+Pyside6+YOLOv7)

摘要:基于YOLOv7算法的高精度实时行人打电话检测系统可用于日常生活中检测与定位手机,此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别,同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训练数据…

2023年度总结:技术旅程的杨帆远航⛵

文章目录 职业规划与心灵成长 ❤️‍🔥我的最大收获与成长 💪新年Flag 🚩我的技术发展规划 ⌛对技术行业的深度思考 🤔祝愿 🌇 2023 年对我来说是一个充实而令人难以忘怀的一年。这一年,我在CSDN上发表了 1…

3D视觉-激光三角测量法的分类

按照入射激光光束和被测物体表面法线的角度关系,一般分为直射式和斜射式两种方式。 1)直射式测量 如图所示,激光器发出的光线,经会聚透镜聚焦后垂直入射到被测物体表面上,物体移动或者其表面变化,导致入射…

网络安全专家常用的12个操作系统

文章目录 前言一、什么是网络安全专家常用的OS和工具二、漏洞赏金猎人常用操作系统Kali LinuxParrot OSBlackArch Linux 三、恶意软件分析和逆向工程操作系统REMnux OSFlare-VM (工具) 四、OSINT和信息采集操作系统CSI LinuxTsurugi Linux 五、事件响应和…

PulseGAN

研究背景 远程光电容积描记术 (rPPG) 是一种非接触式技术,用于测量面部视频中的心脏信号。健康监测和情绪识别等许多领域都迫切需要高质量的 rPPG 脉冲信号。然而,由于脉搏信号不准确的限制,现有的大多数rPPG方法只能用于获取平均心率&#…

云上攻防--云服务对象存储(域名接管)弹性计算(元数据泄露)

云上攻防–云服务&&对象存储(域名接管)&&弹性计算(元数据泄露) 目录标题 云上攻防--云服务&&对象存储(域名接管)&&弹性计算(元数据泄露)对象存储权限配置错误域名接管AK/SK泄漏: 弹性计算元数据泄露加固措施 对象存储 各个厂商对于…

第6章 网页布局

学习目标 熟悉网页布局,能够说明DIVCSS布局的含义。 掌握元素的浮动属性,能够为元素添加和清除浮动。 熟悉overflow属性的用法,能够设置不同的内容溢出状态。 掌握元素的定位属性,能够设置不同的定位模式。 了解元素的类型&am…

外汇天眼:Valdas Dapkus和Tradewale因零售外汇欺诈计划被判支付280万美元

美国衍生品市场监管机构商品期货交易委员会(CFTC)宣布,美国新泽西地区法院于11月28日发布了对位于伊利诺伊州的Valdas Dapkus的最终裁定默认令。5月4日,法院对Dapkus控制的两家实体——Tradewale LLC和Tradewale Managed Fund发布…

自动化测试po模式是什么?自动化测试po分层如何实现?

一、什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage:封装一些最基…

10、RabbitMQ高频面试题

1、你们项目中哪里用到了RabbitMQ RabbitMQ是我们项目中服务通信的主要方式之一 , 我们项目中服务通信主要有二种方式实现 : 通过Feign实现服务的同步调用通过MQ实现服务的异步通信 下面要结合自己的项目中功能来说两个地方 xxx xxx 2、为什么会选择使用RabbitMQ 我们项…