Qt connect()的第五种重载[=](){}
Qt connect()的第五种重载[=](){}
进行网络相关编程时,需要使用信号和槽,碰到一个={}作为槽函数的语句。
【用途】实现函数内部的信号接收。
【原语句】
connect(tcpSocket, &QTcpSocket::readyRead,
[=](){
//从通信套接字中取出内容
QByteArray array = tcpSocket->readAll();
qDebug()<<array<<endl;
}
);
【函数原型】
static(qmetaobject-connection.html) QObject::connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
测试的简单例子
connection.h
#ifndef CONNECTION_H
#define CONNECTION_H
#include <QObject>
#include<QDebug>
class Connection:public QObject
{
Q_OBJECT
public:
Connection();
void test_emit_signal();
public slots:
void test_slot();
signals:
void test_signal();
};
#endif // CONNECTION_H
connection.cpp
#include "connection.h"
Connection::Connection()
{
//connect(this,SIGNAL(test_signal()),this,SLOT(test_slot()));出错
connect(this,&Connection::test_signal,[=](){
qDebug()<<"in slot"<<endl;
//信号需要用指针的形式,而不能用SIGNAL()的形式
}
);
this->test_emit_signal();
}
void Connection::test_slot(){
qDebug()<<"signal received !"<<endl;
}
void Connection::test_emit_signal(){
emit test_signal();
}
main.c
#include <QCoreApplication>
#include"connection.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Connection *tmp=new Connection();
return a.exec();
}
值得注意的是用这种方式处理时,信号需要以指针形式书写。
Qt connect()的第五种重载[=](){}相关推荐
- QT之connect的第五个参数(信号与槽的使用)(qt对象树)
目录 一 .QT connect 第5个参数一般不填,为默认值. 二.信号 三.connect函数原型 四.信号与槽的多种用法 五.槽的属性 一 .QT connect 第5个参数一般不填,为默认值. ...
- Qt-窗口消息处理机制及拦截消息的五种方法
[Qt 拦截消息的五种方法] 覆写框架类QCoreApplication的notify函数,这个函数将得到整个框架中所有窗口的消息 给框架类安装一个消息过滤器 QCoreApplication-> ...
- 【Java用法】FileWriter的用法 wirte() 方法以及几种重载方法的使用详解
本文目录 一.用法介绍 二.疑问解答 2.1.如果这个文件不存在会怎么样? 2.2.如果这个文件存在的话会怎么样? 2.3.如果不想覆盖之前的内容,想要追加内容怎么做? 2.4.添加数据,如何实现换行 ...
- Qt connect信号连接的几种写法
概述 Qt 中的信号和槽应该是最熟悉不过的了,连接信号和槽的关键字 connect有五种连接类型,今天不是介绍这五种连接类型,而是简单的总结一下 connect 的几种新旧写法,其实在新版本中几种写法 ...
- Qt connect 第五个参数
一,Qt connect 函数原型如下,第五个(5种)参数根据接收者和发送者是否在同一个线程不同 QObject::connect(const QObject *sender, const char ...
- python 重载_python模块重载的五种方法
环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 bar.py 的内容非常简单,只写了个 print 语句 只要 bar.py 被导入一次,就被执行一次 print 禁止重复导入 ...
- QT学习笔记(五):Qt5的8种标准对话框示例
QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...
- Qt工作笔记-对connect的第五个参数的研究
本程序配合了QObject::sender,关于QObject::sender在下面这个链接中: https://blog.csdn.net/qq78442761/article/details/81 ...
- Qt信号与槽的五种连接方式
qt信号与槽的五种连接方式: 1.默认连接:如果是在同一线程等价于直连,在不同线程等价于队列连接 2.直连:信号在哪,在哪个线程执行(最好只在同一线程中用) 3.队列连接: 槽在哪就在哪个线程执行 ( ...
最新文章
- 选择学习“下一个”程序语言
- zabbix 2.2 监控mysql_Zabbix-2.2.2监控MySQL的复制-阿里云开发者社区
- 获取当前iframe动态加载文档的href
- SAP HANA Database Explorer 里 SQL console 的用法
- java pdfbox2 中文乱码,如何从PDFBox 2.0.2中的PDDocument提取字体
- LeetCode 819. 最常见的单词
- qsplitter 折叠_河南断桥折叠门效果
- 开放app开放login_开放值得付出努力吗?
- java 字段名重复,java – JSON响应中的重复字段
- elasticsearch的一个bug总结
- Unity2018.2中文更新日志速览版
- 数字高程模型和地图——thematicmapping.org译文(一)
- larval框架数据表的填充
- android程序设计拍照,Android编程实现拍照功能的2种方法分析
- CentOS7.9安装Nextcloud+ocDownloader+aria2使用Nextcloud网盘做离线下载服务器
- 数据库sql简单的优化方案
- git config本地信息配置
- 微服务概念及SpringCloud五大神兽介绍
- 拼多多上市了!社交电商的力量不容小觑!
- Ubuntu下结合GoldDict和谷歌翻译实现快速划译整段文本