当前位置: 首页 > news >正文

望牛墩仿做网站游戏推广合作平台

望牛墩仿做网站,游戏推广合作平台,商业网站建设软件,页面设计读书笔记1500如图,首先 connect是线程安全的。其次它有很多重载,当然最重要的还是QT4连接和QT5连接的区别,这个函数重载表示connect函数也是支持lambda函数的。 connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)connec…

在这里插入图片描述
如图,首先 connect是线程安全的。其次它有很多重载,当然最重要的还是QT4连接和QT5连接的区别,这个函数重载表示connect函数也是支持lambda函数的。

connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)

connect 函数的第五个参数

在这里插入图片描述
了解 connect的第五个参数是非常重要的。其中Qt::UniqueConnection是比较特殊的,它仅仅用于connect的在两个对象之间一个信号和一个槽之间连接的唯一性。注意 在QT中一个对象的信号重复连接到另外一个对象的槽上,那么当信号发送时,每个连接的槽都会执行。如果只希望连接一次那么就可以使用Qt::UniqueConnection。当出现重复的连接时就会连接失败。问题 如何判断连接是否失败了?答案就是connect的返回值。
在这里插入图片描述
因为QMetaObject::Connection重载了运算符bool所以可以将该类直接用于条件判断。代码如下

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);QMetaObject::Connection con = connect(ui->pushButton, &QPushButton::clicked, this, &Widget::slotClicked, Qt::UniqueConnection);QMetaObject::Connection con_1 = connect(ui->pushButton, &QPushButton::clicked, this, &Widget::slotClicked, Qt::UniqueConnection);if(con_1){qDebug() << QStringLiteral("第二次连接成功");}else{qDebug() << QStringLiteral("第二次连接失败");}
}Widget::~Widget()
{delete ui;
}void Widget::slotClicked()
{qDebug() << QStringLiteral("按钮被点击了");
}

这里又可以体现出lambda表达式的坏处。lambda最大的好处就是使用非常方便。不好的地方有使用lambda函数导致调试困难。

    QMetaObject::Connection con = connect(ui->pushButton, &QPushButton::clicked, this, [](){qDebug() << QStringLiteral("按钮被点击了");}, Qt::UniqueConnection);if(con){qDebug() << QStringLiteral("con连接成功");}else{qDebug() << QStringLiteral("con连接失败");}QMetaObject::Connection con_1 = connect(ui->pushButton, &QPushButton::clicked, this, [](){qDebug() << QStringLiteral("按钮被点击了");}, Qt::UniqueConnection);if(con_1){qDebug() << QStringLiteral("con_1连接成功");}else{qDebug() << QStringLiteral("con_1连接失败");}

此时就算两个匿名函数的函数体一样,但是由于名字不一样所以两个都可以连接成功。使用匿名函数导致调试困难
在这里插入图片描述
即使是debug模式仍然不会进入断点。

剩下的四个参数

Qt::AutoConnection 默认就是此链接,如果发送对象和接收对象在同一个线程,那么就是Qt::DirectConnection链接如果不是在同一个线程上那么就是Qt::QueuedConnection
Qt::BlockingQueuedConnectionQt::QueuedConnection相同,不同的是发送信号的线程将会阻塞直到被执行的槽函数返回。如果在同一个线程进行该参数的连接会导致死锁。

http://www.hkea.cn/news/296584/

相关文章:

  • 莱州哪里有做网站的浙江网站建设平台
  • ps网站设计与制作免费推广seo
  • 网站查询功能怎么做关键词搜索量怎么查
  • 付费网站推广网站优化包括哪些内容
  • 在日本做色情网站广州seo外包
  • 最棒的网站建设考研最靠谱的培训机构
  • 广州建设企业网站黑河seo
  • 招商网站建设性价比高seo排名优化的
  • 产品网站怎么做的长沙正规关键词优化价格从优
  • 怎样查询江西省城乡建设厅网站杭州seo网
  • 网站建设空间是指什么软件网站优化最为重要的内容是
  • 做美工要开通什么网站的会员呢新网站友链
  • 网站集约化建设推进情况推广app赚钱
  • 番禺大石做网站域名污染查询网站
  • 长沙市在建工程项目免费seo快速排名工具
  • 南宁定制网站制作电话图片外链生成工具
  • 哪些网站做的海报比较高大上百度客服电话是多少
  • 菏泽网站建设电话常州seo外包
  • 做木皮的网站裂变营销五种模式十六种方法
  • 精美 企业网站模板微信软文推广怎么做
  • 怎么建立一个网站里面可以查询资料百度权重域名
  • 网站建设顺序镇江交叉口优化
  • 低价企业网站搭建软文新闻发布网站
  • 创造与魔法官方网站做自己喜欢的事seo视频
  • 淘宝联盟推广网站怎么做吉安seo招聘
  • 工程招聘网站如何免费制作自己的网站
  • 网站建设调研问卷搜易网托管模式的特点
  • 在哪个网站可以做java面试题宁德市蕉城区疫情
  • 2021年重大新闻事件seo快速工具
  • 拼多多网店南宁优化推广服务