QT5:QObject::connect()介绍

举报
Tracy 发表于 2019/09/02 12:38:33 2019/09/02
【摘要】 学习QT,绕不卡信号与槽,这是QT的一大重点,也是亮点。而QT5则丰富了信号与槽的重载函数,足足增加到了5个,分别如下: 1. 其中,第3个和第5个重载最具有特点。首先看看第3个重载函数,查看QT的help文档,可以看到给出的一个例子: QLabel *label = new QLabel; QLineEdit *lineEdit = new QLineEdit; QObject::con...

学习QT,绕不卡信号与槽,这是QT的一大重点,也是亮点。而QT5则丰富了信号与槽的重载函数,足足增加到了5个,分别如下: 1. 

image.png

image.png

image.png

  1.  其中,第3个和第5个重载最具有特点。

首先看看第3个重载函数,查看QT的help文档,可以看到给出的一个例子: 

QLabel *label = new QLabel; QLineEdit *lineEdit = new QLineEdit; QObject::connect(lineEdit, &QLineEdit::textChanged, label, &QLabel::setText);

但是当信号由多个重载时,这么直接使用就会出现编译失败,因为编译器找不到对应方法。我们可以通过函数指针的变量来来指定实际的信号,如下图所示,黄色框内的代码和绿色框内的等价。

之后,看看第5个重载函数,也看看help文档给出的代码例子。 

image.png

 可以明显看到槽函数变成了Lambda表达式,这对于某些简单的槽函数,可就节省了思考方法名的时间了,很大程度提升了便捷性。而Lambda表达式的编写方法,可以具体查看。

最后,结束语,希望自己早早掌握QT。

本文转载自异步社区。

文链接:

https://www.epubit.com/articleDetails?id=N931dcf60-be3f-44f1-9298-546de9488d32

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。