写点什么

Qt 中 connect 的多种方式

作者:用户10086
  • 2022 年 7 月 13 日
  • 本文字数:949 字

    阅读完需:约 3 分钟


前言

在做项目的过程中,使用 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);


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

发布于: 刚刚阅读数: 3
用户头像

用户10086

关注

还未添加个人签名 2022.07.01 加入

一个辣椒爱好者

评论

发布
暂无评论
Qt中 connect的多种方式_qt_用户10086_InfoQ写作社区