Qt 之 QPushButton,信号与槽机制

文章目录

  • 前言
  • 一、QPushButton
  • 二、信号与槽机制
  • 总结

前言


一、QPushButton

当我们开发基于Qt框架的图形用户界面(GUI)应用程序时,经常需要在界面上添加按钮来实现用户交互。Qt提供了一个名为 QPushButton 的类作为按钮控件的实现。QPushButton是Qt中的标准按钮类,旨在简化按钮的创建和使用。
头文件 :#include < QPushButton >

QPushButton 用于接受用户点击事件
QPushButton 是功能性组件,需要 父组件 作为 容器 QPushButton 能够在父组件中进行定位。

以下是QPushButton的常用函数及其作用的表格:

函数名作用
setText(const QString&)设置按钮的文本内容。
setIcon(const QIcon&)设置按钮的图标。
setEnabled(bool)设置按钮是否可用。
setChecked(bool)设置按钮是否处于选中状态。
setShortcut(const QKeySequence&)设置按钮的快捷键。
setDefault(bool)设置按钮是否为默认按钮,即按下回车键时触发。
toggle()切换按钮的选中状态。
animateClick(int)以动画效果模拟按钮点击。
isCheckable()判断按钮是否可选中。
isChecked()判断按钮是否选中状态。
isDown()判断按钮是否被按下。
click()模拟按钮点击。
showMenu(QMenu)显示与按钮关联的弹出菜单。
setMenu(QMenu)设置与按钮关联的弹出菜单。
setStyleSheet(const QString&)设置按钮的样式表,用于定制按钮的外观。
resize(int, int)调整按钮的大小。
move(int, int)移动按钮的位置。
setToolTip(const QString&)设置按钮的工具提示文本,当鼠标悬停在按钮上时显示。
setToolTipDuration(int)设置按钮工具提示的显示持续时间。
setAutoRepeat(bool)设置按钮是否自动重复发出点击信号。
setAutoRepeatDelay(int)设置按钮自动重复发出点击信号的延迟时间。
setAutoRepeatInterval(int)设置按钮自动重复发出点击信号的时间间隔。
这些函数提供了对按钮的属性、状态、外观和行为进行设置和控制的方法。通过使用这些函数,我们可以实现自定义的按钮逻辑和交互效果,并为用户界面增添更多的交互性和可视化效果。

例如:

Qwidget w;			//生成 QWidget对象,顶级组件

QPushButton b ( &w);		//生成QPushButton对象,其父组件为QWidget

b.setText ( "Button") ; 		//设置显示的字符串
b.move ( 10,10);		//移动到坐标(10,10)
b.resize ( 100,25);		//设置大小width = 100,height = 25

二、信号与槽机制

  1. 信号与槽是Qt框架中一种强大的机制,用于实现对象之间的通信和交互

它是一种事件驱动的通信机制,可让 象之间以松散耦合的方式进行通信,实现高效的模块化设计和编程。

在Qt中,每个QObject派生类都可以定义信号和槽。信号用于发出通知或事件,而槽用于接收并响应这些通知或事件。当信号被触发时,与之关联的一个或多个槽函数会被自动调用。
Qt

  1. Qt中定义了与系统消息相关的概念:
  • 信号(Signal ) :由操作系统产生的消息
  • 槽(Slot ) : 程序中的消息处理函数
  • 连接( Connect ) : 将系统消息绑定到消息处理函数
    在这里插入图片描述
    信号 到 槽的连接必须发生在 两个 Qt 对象之间。
  1. Qt 中的关键字:
  • SIGNAL :用于指定消息名
  • SLOT : 用于指定消息处理函数名
  • Q_OBJECT : 所有自定义槽的类必须在类声明的开始处加上
  • slots : 用于在类中声明消息处理函数
  1. connect 函数
bool connect (const Qobject*sender , 			// 发送对象
			 const char* signal,						// 消息名
			 const Qobject* receiver,				// 接收对象
			 const char* method ,					// 接受对象的成员函数
			 Qt : : ConnectionType type = Qt : : AutoConnection) ;

函数的参数包括信号的 发出者、信号的名称、槽函数的接收者 和 槽函数 的名称。
连接之后,当信号被触发时,与之连接的槽函数会被自动调用。


总结

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

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

相关文章

题解 | #1002.Shortest path# 2023杭电暑期多校9

1002.Shortest path 签到题 记忆化搜索 题目大意 给定一个正整数 n n n &#xff0c;可以对其进行以下操作&#xff1a; 如果 n n n 能被 3 3 3 整除&#xff0c;则可以使 n n / 3 nn/3 nn/3 ;如果 n n n 能被 2 2 2 整除&#xff0c;则可以使 n n / 2 nn/2 nn/2 …

探索Java中的静态变量与实例变量:存储区域、生命周期以及内存分配方式的区别

文章目录 静态变量实例变量不可变对象静态变量和实例变量有什么区别&#xff1f;静态变量实例变量 Object 类都有哪些公共方法&#xff1f;Java 创建对象有哪几种方式&#xff1f;ab 与 a.equals(b) 有什么区别&#xff1f;总结 &#x1f389;欢迎来到Java面试技巧专栏~探索Jav…

贝锐蒲公英:快速搭建连锁门店监控体系,赋能企业高效管理

随着国民生活水平的提高和零售场景的变革&#xff0c;消费者对于餐饮类目的消费支出不断增加&#xff0c;线下社区生鲜商超作为下沉市场最主要的消费场景之一&#xff0c;蕴藏着巨大价值机会。 对于线下连锁生鲜超市而言&#xff0c;连锁门店多、员工多&#xff0c;门店管理时会…

如何使用CSS实现一个响应式网格布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现响应式网格布局⭐ 设置基本的HTML结构⭐ 创建基本的CSS样式⭐ 添加媒体查询以实现响应式效果⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端…

【Vue-Router】路由传参

1. query 传参 list.json {"data": [{"name": "面","price":300,"id": 1},{"name": "水","price":400,"id": 2},{"name": "菜","price":500,"…

C#质检工具(StyleCop、SonarLint)

1、StyleCop StyleCop工具主要类似java中的checkStyle,是检查代码样式规范的工具。 1.1、StyleCop安装流程: 图1.1 图1.2 图1.3 安装StyleCop插件时可能会遇到下载特慢或卡住不动的情况,需注意: 1)网上说的关闭IPV6功能不管用 2)网上说的自动指定dns不管用 3)网上…

Qt应用开发(基础篇)——滚屏区域基类 QAbstractScrollArea

一、前言 QAbstractScrollArea滚屏区域抽象类继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是QListview(列表浏览器)、QTableview(表格浏览器)、QTextEdit(文本编辑器)、QTextBrowser(文本浏览器)等所有需要滚屏区域部件的抽象基类。 框架类QFrame介绍 QAbstractSc…

软件工程概述-架构师(三)

软件工程概述&#xff08;老版&#xff09; 软件开发生命周期&#xff1a; 软件定义时期&#xff1a;包括 可行性研究和详细需求分析过程&#xff0c;任务是软件工程必需完成的目标&#xff0c;具有可行问题分析、可行性研究、需求分析等。软件开发时期&#xff1a;软件的 设…

11 - git stash 开发中临时加塞了紧急任务怎么处理

查看所有文章链接&#xff1a;&#xff08;更新中&#xff09;GIT常用场景- 目录 文章目录 开发中临时加塞了紧急任务怎么处理 开发中临时加塞了紧急任务怎么处理 当你此时工作区已经修改了 Readme 文件&#xff0c;然后突然需要解决其他问题&#xff08;紧急问题、新任务&…

HbuildX生成安卓签名证书

HbuildX生成安卓签名证书 安装和配置JRE环境 根据此链接安装和配置JRE环境 生成签名证书 keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystoretestalias是证书别名&#xff0c;可修改为自己想设置的字符&#xff0c;建议…

Java旋转数组中的最小数字(图文详解版)

目录 1.题目描述 2.题解 分析 具体实现 方法一&#xff08;遍历&#xff09;&#xff1a; 方法二&#xff08;排序&#xff09;&#xff1a; 方法三&#xff08;二分查找&#xff09;&#xff1a; 1.题目描述 有一个长度为 n 的非降序数组&#xff0c;比如[1,2,3,4,5]&a…

深入了解电脑硬件以及多线程编程

文章目录 认识计算机硬件与多核CPU的工作原理单核CPU多核CPU并发与并行 深入了解进程、线程及其优先级进程与线程线程的创建与命名线程的优先级与控制线程的休眠与等待 线程安全与锁机制同步与异步线程安全问题与锁可重入锁解决线程安全问题 多线程间的通信与线程池的使用线程通…

无涯教程-Perl - select函数

描述 此函数将输出的默认文件句柄设置为FILEHANDLE,如果未指定文件句柄,则设置由print和write等功能使用的文件句柄。如果未指定FILEHANDLE,则它将返回当前默认文件句柄的名称。 select(RBITS,WBITS,EBITS,TIMEOUT)使用指定的位调用系统功能select()。 select函数设置用于处理…

每天一道leetcode:1129. 颜色交替的最短路径(图论中等广度优先遍历)

今日份题目&#xff1a; 给定一个整数 n&#xff0c;即有向图中的节点数&#xff0c;其中节点标记为 0 到 n - 1。图中的每条边为红色或者蓝色&#xff0c;并且可能存在自环或平行边。 给定两个数组 redEdges 和 blueEdges&#xff0c;其中&#xff1a; redEdges[i] [ai, bi…

创建Azure资源锁

锁的介绍 在Azure中&#xff0c;资源锁是一种用于保护订阅、资源组或者单个资源的机制。它可以防止对受锁定的资源进行删除或修改操作&#xff0c;帮助确保资源的连续可用性和安全性。 Azure中的资源锁可以分为两种类型&#xff1a; 删除锁&#xff08;CanNotDelete&#xf…

el-table自适应缩放大小

安装依赖 npm install --save vue-draggable-resizable //或 cnpm install --save vue-draggable-resizablemain.js引入依赖 import VueDraggableResizable from vue-draggable-resizable import "vue-draggable-resizable/dist/VueDraggableResizable.css"; Vue.c…

linux中的/dev/null

1.什么是/dev 在 Linux 上&#xff0c;从驱动程序到设备的所有内容都可以作为文件进行访问。/dev/ 是包含所有物理和虚拟设备的目录。例如&#xff0c;/dev/sda 可能是您的主硬盘驱动器&#xff0c;/dev/sdb 可能是您现在正在使用的笔记本驱动器的文件。这就是您在 Linux 中访问…

原子css 和 组件化css如何搭配使用

如果让你来实现下面这种页面&#xff0c;该怎么实现呢 原子化和css组件化方式写法&#xff0c;可以搭配起来使用&#xff0c;常用的css 原子css 比如 下面这些类似flex 布局&#xff0c;lstn curser-pointer 等常用的或者 具备一定规律性的padding margin 样式可以抽取为单独…

KubeSphere 部署 Zookeeper 实战教程

前言 知识点 定级&#xff1a;入门级如何利用 AI 助手辅助运维工作单节点 Zookeeper 安装部署集群模式 Zookeeper 安装部署开源应用选型思想 实战服务器配置(架构 1:1 复刻小规模生产环境&#xff0c;配置略有不同) 主机名IPCPU内存系统盘数据盘用途ks-master-0192.168.9.9…

【maven】通过profiles实现:怎样激活某个仓库、同时加载多个profile、不同环境加载不同依赖jar

文章目录 一. 基本用法二. 仓库激活方式1. 使用activeProfile激活2. 使用-P参数激活3. 使用-P参数不激活 三. 查看激活的仓库四. 不同环境依赖不同版本的jar Maven中的profile是一组可选的配置&#xff0c;可以用来设置或者覆盖配置默认值。有了profile&#xff0c;你就可以为不…