Qt自定义信号、带参数的信号、lambda表达式和信号的使用

整个部分知识通过一个跳转窗口的项目来体现
第一个页面

#include "test.h"
#include <qdebug.h>
test::test(QWidget *parent): QDialog(parent)
{ui.setupUi(this);/** &s 信号发出者* &subWidget::mySignals 处理的信号,  &发送者类名::槽函数* this信号接收者* &test::onSubcliked 信号处理函数、槽函数   &接收者类名::槽函数*///函数指针//  void(subWidget:: * mySignals)() = &subWidget::mySignals;// connect(&s,mySignals,this,&test::onSubcliked);//  void(subWidget:: *mySignals1)(int,QString) = &subWidget::mySignals;//  connect(&s, mySignals1, this, &test::displsy);//槽函数必须有slots关键字修饰//this :类中所有成员以值传递方式//&:把外部所有局部变量,引用符号connect(&s, SIGNAL(mySignals()), this, SLOT(onSubcliked()));connect(&s, SIGNAL(mySignals(int,QString)), this, SLOT(displsy(int, QString)));connect(ui.pushButton, &QPushButton::clicked, this, &test::on_pushButton_cliked);//lambda表达式 匿名函数对象//配合信号使用方便connect(ui.pushButton_3, &QPushButton::clicked, // = :把外部所有的局部变量、类中所有成员以值传递方式//mutable可变的    [=]() mutable[=](bool isCheck){ui.pushButton_3->setText("123");qDebug() << "dadasa";qDebug() << isCheck;});
}test::~test()
{}void test::on_pushButton_cliked()
{this->hide();s.show();
}void test::onSubcliked()
{this->show();s.hide();
}void test::displsy(int num, QString s)
{qDebug() << num << s;
}

.h文件

#pragma once#include <QtWidgets/QDialog>
#include "ui_test.h"
#include "subWidget.h"class test : public QDialog
{Q_OBJECTpublic:test(QWidget *parent = nullptr);~test();void on_pushButton_cliked();//槽函数private slots:void onSubcliked();void displsy(int num, QString s);
private:Ui::testClass ui;subWidget s;
};

第二个页面

#include "subWidget.h"subWidget::subWidget(QWidget *parent): QDialog(parent)
{ui.setupUi(this);//将按钮和方法链接connect(ui.pushButton,&QPushButton::clicked,this,&subWidget::on_pushButton_cliked);connect(ui.pushButton_2, &QPushButton::clicked, this, &subWidget::on_pushButton2_cliked);
}subWidget::~subWidget()
{}void subWidget::on_pushButton_cliked()
{emit mySignals();
}void subWidget::on_pushButton2_cliked()
{emit mySignals(1,"发发大");
}

.h文件

#pragma once#include <QDialog>
#include "ui_subWidget.h"class subWidget : public QDialog
{Q_OBJECTpublic:subWidget(QWidget *parent = nullptr);~subWidget();void on_pushButton_cliked();void on_pushButton2_cliked();
signals:/** 信号必须有signals关键字声明* 信号灭有返回值,但是可以有参数* 信号就是函数的声明,只需声明,无需定义* 使用:emit mySignals*/void mySignals();void mySignals(int num, QString s);private:Ui::subWidgetClass ui;
};

在这里插入图片描述
跳转到子页面
在这里插入图片描述
点击显示内容 就会打印
在这里插入图片描述
点击返回主页面
在这里插入图片描述
点击lambda表达式
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

携手鲲鹏,长亮科技加速银行核心系统升级

新经济周期下&#xff0c;银行净息差持续收窄、盈利压力加大、市场竞争日趋加剧。同时&#xff0c;国家相关政策不断出台&#xff0c;对金融科技的自主创新与安全可控提出了更高要求。 在这样的大背景下&#xff0c;银行业的数字化转型已经步入深水区。其中&#xff0c;核心系统…

Games101学习 - 光栅化

Games101中讲解的光栅化的基础知识&#xff0c;本文就来梳理一下。 在UE中使用UTexture2D可以逐像素绘制纹理&#xff1a; https://blog.csdn.net/grayrail/article/details/142165442 1.绘制三角形 这里可以通过101中讲解的叉积法逐像素绘制三角形&#xff1a; 绘制效果&a…

表单标记form

1.form:表单域标记&#xff0c;表示表单范围&#xff0c;所有的表单元素必须放进form标记中 2.input:用来设置表单输入元素&#xff0c;<input>元素根据不同的属性&#xff0c;可以有多种形式&#xff0c;如文本框&#xff08;text&#xff09;,密码框&#xff08;passw…

信息安全数学基础(9)素数的算数基本定理

前言 在信息安全数学基础中&#xff0c;素数的算数基本定理&#xff08;也称为唯一分解定理或算术基本定理&#xff09;是一个极其重要的定理&#xff0c;它描述了正整数如何唯一地分解为素数的乘积。这个定理不仅是数论的基础&#xff0c;也是许多密码学算法&#xff08;如RSA…

Java面试篇基础部分-Java泛型详解

导语   Java中泛型的本质是参数化类型,泛型提供了编译时类型的安全检测机制。泛型机制允许程序在编译的时候检测非法的类型,例如要实现一个对于字符串、整型、浮点型、对象类型等比较其大小的方法,就可以使用泛型,在使用的时候在明确所要比较的数据类型就可以了。 当然如…

OAExploit一款基于OA产品的一键扫描工具

OAExploit一款基于OA产品的一键扫描工具 01 项目介绍 一款扩展性高的渗透测试框架渗透测试框架 出现卡死的几种情况&#xff1a;1.点击按钮太快 2. 打印log 的异常 02 工具展示

【有啥问啥】复习变分下界即证据下界(Evidence Lower Bound, ELBO):原理与应用

复习变分下界即证据下界&#xff08;Evidence Lower Bound, ELBO&#xff09;&#xff1a;原理与应用 变分下界&#xff08;Variational Lower Bound&#xff09;&#xff0c;也称为“证据下界”&#xff08;Evidence Lower Bound, ELBO&#xff09;&#xff0c;是概率模型中的…

git编译安装报错

编译安装步骤 卸载旧的 yum -y remove gitcd /usr/local/src/wget https://www.kernel.org/pub/software/scm/git/git-2.15.1.tar.xztar -vxf git-2.15.1.tar.xzcd git-2.15.1make prefix/usr/local/git allmake prefix/usr/local/git installecho "export PATH$PATH:/usr…

c#中给winform定义快捷键的几种方式

快捷键的使用在日常的开发中频率比较高&#xff0c;这里总结了最常见的各种快捷键的设置方式&#xff0c;需要的时候大家直接照抄就可以了&#xff0c;不用再去查询如何实现了。 文章目录 一、按钮快捷键二、菜单快捷键三、全局快捷键1、重写ProcessCmdKey2、使用KeyPreview属…

操作系统的重点笔记-1

一、操作系统的设计目标 1.易用性 使计算机易于使用&#xff0c;提供文件抽象后&#xff0c;对文件的操作就是对磁盘的操作&#xff0c;不再需要考虑如何通过控制磁盘移动&#xff0c;实现对磁盘某个信号的读写细节 2.高效性 完成特定功能的效率&#xff0c;如时间效率&…

Golang | Leetcode Golang题解之第404题左叶子之和

题目&#xff1a; 题解&#xff1a; func isLeafNode(node *TreeNode) bool {return node.Left nil && node.Right nil }func sumOfLeftLeaves(root *TreeNode) (ans int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {node : q[0]q q[1:]if no…

Win11 频繁蓝屏重启

一、问题描述 最近在使用笔记本的时候时不时的蓝屏重启&#xff0c;甚至重启完进系统立马蓝屏重启&#xff0c;还好我凭借快速的手速拍到了错误的原因&#xff0c;如下图所示。 失败的操作是Netwtw12.sys&#xff0c;查了一下这个错误是由于无线网卡导致的&#xff0c;经过测试…

全网最适合入门的面向对象编程教程:48 Python函数方法与接口-位置参数、默认参数、可变参数和关键字参数

全网最适合入门的面向对象编程教程&#xff1a;48 Python 函数方法与接口-位置参数、默认参数、可变参数和关键字参数 摘要&#xff1a; 在 Python 中&#xff0c;函数可以接受多种不同类型的参数&#xff0c;包括位置参数、默认参数、可变参数和关键字参数等&#xff0c;理解…

什么是交换机级联?

在现代计算机网络中&#xff0c;交换机级联是一种广泛应用的技术&#xff0c;有助于提升网络的扩展性和灵活性。本文将深入探讨交换机级联相关知识&#xff0c;详细介绍其基本概念和连接配置方法&#xff0c;并对常见技术问题进行解答。 交换机级联概述 交换机级联是指通过将…

聊点基础的,关于监控,关于告警(prometheus—+grafana+夜莺如何丝滑使用?)

事情的起因是这样的&#xff0c;昨天又群友在群里咨询一个关于grafana和prometheus配置文件的用法&#xff0c;整了半天也没回复&#xff0c;正好知道就帮了一把&#xff0c;今天整理成文章&#xff0c;希望帮到更多的朋友 大致问题的话就是图里面提到的几个&#xff0c;其实都…

webpack的热更新原理

Webpack热更新&#xff08; Hot Module Replacement&#xff0c;简称 HMR&#xff09;&#xff0c;无需完全刷新整个页面的同时&#xff0c;更新所有类型的模块&#xff0c;是 Webpack 提供的最有用的功能之一。 保留在完全重新加载页面期间丢失的应用程序状态。只更新变更内容…

Qt_控件的QWidget属性介绍

目录 1、QWidget的核心属性 2、enabled 3、geometry 3.1 代码测试geometry 4、windowTitle 4.1 代码测试windowTitle 5、windowIcon 5.1 QIcon设置图标 5.2 qrc机制 5.3 代码测试windowIcon 6、windowOpacity 6.1 代码测试windowOpacity 7、cursor 7.1 代码测试…

多线程篇(线程池 - 整体介绍)(持续更新迭代)

目录 一、线程池&#xff08;并发编程的艺术&#xff09; 1. Java中的线程池 1.1. 线程池的实现原理 1.2 线程池的使用 1. 线程池的创建 2. 向线程池提交任务 3. 关闭线程池 4. 合理地配置线程池 5. 线程池的监控 1.3 本章小结 2. Executor框架 2.1 Executor框架简介…

2-93 基于matlab的无人机FMCW(频率调制连续波)毫米波高度计雷达仿真

基于matlab的无人机FMCW&#xff08;频率调制连续波&#xff09;毫米波高度计雷达仿真&#xff0c;不考虑环境杂波和收发信号隔离泄漏。通过考虑雷达天线、波束形成、信号传播、回波接收等环节影响。建立FMCW毫米波雷达系统的数学模型&#xff0c;评估无人机在不同高度下的高度…

Google推出Data Commons解决AI“幻觉”

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…