运行截图如下:

格式如下:

[static] QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal,const QObject *receiver,PointerToMemberFunction method,Qt::ConnectionType type = Qt::AutoConnection)

如:

connect(m_form,&Form::sendMsg,this,&Widget::receivData);

与前者最大的不同就是,指定信号和槽两个参数时不用再使用SIGNAL()和SLOT()宏,并且槽函数不再必须是使用slots关键字声明的函数,而可以是任意能和信号关联的成员函数。要使一个成员函数可以和信号关联,那么这个函数的参数数目不能超过信号的参数数目,但是并不要求该函数拥有的参数类型与信号中对应的参数类型完全一致,只需要可以进行隐式转换即可。使用这种重载形式,前面程序中的关联可以使用如下代码代替。

使用这种方式与前一种相比,还有一个好处就是可以在编译时进行检查,信号或槽的拼写错误、槽函数参数数目多于信号的参数数目等错误在编译时就能够被发现。

代码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();void receivData(QString msg);private:Ui::Widget *ui;
};#endif // WIDGET_H

form.h

#ifndef FORM_H
#define FORM_H#include <QWidget>namespace Ui {
class Form;
}class Form : public QWidget
{Q_OBJECTpublic:explicit Form(QWidget *parent = 0);~Form();signals:void sendMsg(QString msg);public slots:void btnClicked();private:Ui::Form *ui;
};#endif // FORM_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include "form.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowTitle("CSDN IT1995");Form *m_form=new Form();m_form->show();connect(m_form,&Form::sendMsg,this,&Widget::receivData);
}void Widget::receivData(QString msg){ui->lineEdit->setText(msg);
}Widget::~Widget()
{delete ui;
}

form.cpp

#include "form.h"
#include "ui_form.h"Form::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form)
{ui->setupUi(this);this->setWindowTitle("CSDN IT1995");connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(btnClicked()));
}void Form::btnClicked(){emit sendMsg(ui->lineEdit->text());
}Form::~Form()
{delete ui;
}

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

Qt工作笔记-Qt5新版信号与槽相关推荐

  1. Qt工作笔记-Qt5中中文编码方面的笔记

    目前在使用国内的数据库和实时库接口. 说句实话,国内的东西与国外的东西比,在用户体验和接口调用上比还是存在很大的距离. 个人喜欢用QString去存储数据.个人感觉QTL比STL开发起来要快点 这里有 ...

  2. Qt工作笔记-Qt5 利用QJson从文件读取Json并解析

    原文地址: https://blog.csdn.net/hp_cpp/article/details/80338116 Json文件是这样: {"first fruit":{&qu ...

  3. Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包

    原理以及运行 原理是因为QJsonDocument提供了一个函数toJson 可以直接把Json数据转成QByteArray,这样就可以直接发送数据包,然后再按照常规方法解析即可,本源码中含解析内容, ...

  4. Qt工作笔记-Qt元对象系统解析【2合1】

    博文转载地址: https://blog.csdn.net/spwper/article/details/51332187 说Qt信号与槽是一个很好机制,不如说Qt的元对象系统很强大.这也是大家讲Qt ...

  5. QT核心机制3:信号与槽

    个人博客对应地址:QT核心机制3:信号与槽 写在前面 这篇文章基本是对Qt官方文档某些章节的翻译理解了,翻译这些章节的原因是我认为这些是Qt中最核心的东西,翻译的过程也就是强迫自己认真去读它们的过程, ...

  6. Qt 多线程中地信号与槽

    Qt 多线程中地信号与槽 函数原型: 1 QObject::connect(const QObject *sender, const char *signal, const QObject *rece ...

  7. 最新QT从入门到实战完整版(08.qt中的坐标系-09 信号和槽-点击按钮关闭窗口_)

    最新QT从入门到实战完整版(08.qt中的坐标系-09 信号和槽-点击按钮关闭窗口_) 一.08.qt中的坐标系 二,09 信号和槽-点击按钮关闭窗口_ 来自 一.08.qt中的坐标系 二,09 信号 ...

  8. Qt工作笔记-信号与槽参数匹配问题

    今天,我把Qt3代码转化为Qt5,控件啥的都要换,李主任说了下为什么以前的信号和槽函数参数不匹配!!这句话让我对Qt中的信号与槽进一步有了了解. 下面的这个演示源码是基于这个博客的 https://b ...

  9. Qt工作笔记-使用信号与槽让两个界面进行数据通信

    今天在项目中,发现有一个十分重要的功能,就是2个界面进行数据通信. 记得1年多前,刚刚学习Qt,对这个无法理解,然后经过一年多的学习和理解,在此把自己学习的感悟和知识在此总结下. 下面是使用emit ...

最新文章

  1. 如何理解jdk8通过行为参数化传递代码
  2. Linux下Apache日志分析工具--AWStats安装使用
  3. synchronized()_这篇文章带你彻底理解synchronized关键字
  4. php 支付宝订单查询_5. PHP接入支付宝单笔订单查询接口
  5. Linux带给了我什么?
  6. SAP 电商云 UI 持续集成里 workflow 触发条件一览
  7. 《重构-改善既有代码的设计》学习笔记(二)
  8. CVPR 2020 Oral |目标检测+分割均实现SOTA!厦大提出协同学习网络
  9. python多个函数组成_由多个激活函数组成的神经网络
  10. RabbitMQ入门(2)--工作队列
  11. Linux Netfilter 防火墙模块爆新漏洞,攻击者可获取root权限
  12. centos7的firewall-cmd怎么让指定ip能访问指定端口?
  13. thinkserver TS250安装centos7.5经验
  14. 微信小程序 禁止弹框下面的内容滑动
  15. 优秀的 HTML5 网站设计案例欣赏
  16. 5G系统中BBU与RRU之间前传接口(CPRI)带宽计算
  17. Intel 5 6 7 8系列芯片组介绍
  18. 方法入参很复杂,每次调用都要构造BO入参?一招教你自动构造入参
  19. React高级话题之Refs and the DOM
  20. 关于电话电子邮件诈骗的骨感

热门文章

  1. 什么是事务(Transaction)
  2. C/C++编程笔记:浅析 C 语言中宏定义的使用,知识点全解
  3. 资深程序员的笔记:工作多年对于编程语言的理解,新手建议了解!
  4. 软件工程:汇编语言和C语言在软件工程的应用,计算机学生必看!
  5. 实用、酷炫的可视化,你用10小时,同事用10分钟,差距在哪?
  6. 刘翔博客答即时通信公司网友提问
  7. 女人,就是不适合做IT!
  8. C\C++语言,从编程语言到库、API、框架、引擎
  9. 一个程序员的真实生活状态。没错,是我!
  10. linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件