Day-03-信号与槽的三种代码引入方式

ops/2024/11/13 9:37:31/

一、构造函数引用

        1、引出三个按键

        2、为了方便区分和编写,对控件进行改名

         3、切记切记,注意函数声明

        4、注意相关的头文件 

         5、快捷跳转

二、Lambda函数引用

        lambda函数不需要另外再单独声明其他函数

三、函数指针直接连接信号与槽

        此种引用需要另外声明函数

 

四、项目展示

        1、 widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//第一种方式:QObject::connect(sender:发送人, SIGNAL(signal():发送的信号), receiver:接收者, SLOT(slot():接收者事件));QObject::connect(ui->signal_one, SIGNAL(clicked()), this,SLOT(on_btnCon_clickedMyself()));//第二种方式:lambda表达式:QObject::connect(sender, &Sender::signal, [=]() { /* lambda body 函数体 */ });QObject::connect(ui->signal_two, &QPushButton::clicked,[=](){std::cout << "Second-way" << std::endl;});//第四种方式:指针直接连接引出槽函数 QObject::connect(sender, &Sender::signal, receiver, &Receiver::slot);QObject::connect(ui->signal_three,&QPushButton::clicked,this,&Widget::on_fortch_clicked);}Widget::~Widget()
{delete ui;
}void Widget::on_btnCon_clickedMyself()
{std::cout << "First-way" << std::endl;}void Widget::on_fortch_clicked()
{std::cout << "Third-way" << std::endl;
}

         2、widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <iostream>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_btnCon_clickedMyself();void on_fortch_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H

        3、widget.ui

        4、成果展示


http://www.ppmy.cn/ops/105265.html

相关文章

数据库系统之逻辑设计

数据库的逻辑设计是将概念设计阶段产生的实体关系图&#xff08;ER图&#xff09;转化为具体的数据库表结构的过程。这一阶段的目标是创建一个高效、易于管理和扩展的数据库模式。下面我将通过一个简单的例子来详细介绍数据库逻辑设计的过程。 ### 示例&#xff1a;图书管理系…

C_12_链表

链表 概述&#xff1a; 是一种数据结构 分为单链表与双链表两种 单链表&#xff1a; 链表种节点是离散的在内存中开辟空间的 因为是离散开辟&#xff0c;内存地址通常不是连续的&#xff0c;地址不一定相邻&#xff0c;甚至可能存在其他数据在它们之间。 双链表 1 定义节点 分…

Anaconda的包管理

使用pip命令安装第三方包的方法&#xff0c;其中package-name代表程序包的名字 pip install package-name使用conda下载Python程序包 conda install package-name使用conda list可以查看有哪些包是使用conda进行安装的。 使用pip list可以查看有哪些包是使用pip进行安装的。

【STM32】FMC

FMC功能与FSMC类似&#xff0c;但比FSMC更强大&#xff0c;但仅在F4 / F7 / H7等高级一点的MCU上支持&#xff0c;F1不支持。虽然我的是F103&#xff0c;但顺便都看了。 大部分图片来源&#xff1a;正点原子HAL库课程 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目…

【人工智能】项目案例分析:使用TensorFlow进行大规模对象检测

&#x1f3c6;&#x1f3c6;欢迎大家来到我们的天空&#x1f3c6;&#x1f3c6; &#x1f3c6; 作者简介&#xff1a;我们的天空 &#x1f3c6;《头衔》&#xff1a;大厂高级软件测试工程师&#xff0c;阿里云开发者社区专家博主&#xff0c;CSDN人工智能领域新星创作者。 &…

Pixelmator Pro for Mac 专业图像处理软件【媲美PS的修图软件】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件…

win10配置adb环境变量

初始状态&#xff1a; 最简单的配置方案&#xff0c;直接复制adb所在路径&#xff1a; 粘贴进来确定即可&#xff1a; 然后打开 cmd 查看已经配置成功了&#xff1a;

如何本地搭建Whisper语音识别模型

Whisper是OpenAI推出的一款强大的语音识别模型,具备多种语言的识别能力。尽管基于云的语音识别服务方便,但有些项目和需求需要在本地环境运行,以确保数据隐私和降低延迟。以下是如何在本地搭建Whisper语音识别模型的详细指南。 环境准备 1. 硬件要求: - 计算能力:建议…