Qt中 connect的多种方式

举报
咚咚隆地咚 发表于 2022/09/20 17:58:27 2022/09/20
【摘要】 在做项目的过程中,使用connect用来传数据是非常方便的,不仅可以用于数据的发送,同时也可以实现改变状态时通过函数等实现自己所需要发生变化。接下来开始讲解! connect简介connect时附属于QObject 所在书上等等在使用connect时都会在前面加上QObject::,可以以哦那个他来引用。可以通过翻译发现它是用来连接,就像是通过一根线可以让两个毫无关系的让两个人连接起来,让他...

在做项目的过程中,使用connect用来传数据是非常方便的,不仅可以用于数据的发送,同时也可以实现改变状态时通过函数等实现自己所需要发生变化。接下来开始讲解!

connect简介

connect时附属于QObject 所在书上等等在使用connect时都会在前面加上QObject::,可以以哦那个他来引用。可以通过翻译发现它是用来连接,就像是通过一根线可以让两个毫无关系的让两个人连接起来,让他们有了关系,而这根线就是他们的信号,当然信号是有发送者发出,就像两个人示好,必须有一个人首先发出示好的信号,二接收者可以通过槽函数来操作他发送的信号。

bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * member )

接下来介绍connect的几种形式:

第一种 需要填充参数

QObject::connect(radioButton_9, SIGNAL(clicked()), Dialog, SLOT(setTextFontColor()));

这种方式,他在使用槽函数的时候必须填入相对应的参数类型,必须要一一对应SIGNAL(clicked())用来引用信号,它可以跟随到信号所发送的信号位置SLOT(setTextFontColor())用来写槽函数,在介绍到信号时开始进入槽函数,相当于只要你发信号我立马就到!

但是在填充参数的时候要注意了一定要对应
例如:QObject::connect(radioButton_9, SIGNAL(clicked(bool)), Dialog, SLOT(setTextFontColor(bool)));//有参数需要注明参数类型

第二种 直接点明参数位置

QObject::connect(lineEdit, &QLineEdit::textChanged, this,&widget::on_textChanged);

这种方式在一般做项目时比较用的多,无论是在写槽函数还是信号时,都需要在他的前面写上这个信号的父亲类,这样在后续使用中也比较方便。

第三种 直接在槽函数出些函数内容

connect(pbutOutput,&QPushButton::clicked,this,[=]()
{

        bool round =true;
   });

这种方法适用于他的槽函数是独一无二的,我们也没必要在开辟出一块地方来存储这个函数,可以这样直接写在内部,但是要注意的是,()内一定要和信号的参数保持类型一致!

第四种 传送信号

QObject::connect(lineEdit, &QLineEdit::textChanged, this,&widget::on_textChanged);

这是一种比较特殊的方式,她相当于一个中间人,在一个朋友发送信号了以后立马把信号发送给另外一个朋友,这里要注意的时槽函数的地方是用来写接收者的信号!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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