使用emit发出信号

1. 信号声明

在发送信号的模块类头文件中声明信号函数

signals:
void sendRate(QString rate);

2. 在发送模块的成员函数中发出信号

emit sendRate(ui.lineEdit_2->text());

3. 在接受信号的模块头文件找中声明槽函数

private slots:
void receiveRate(QString rate);

4. 在接受信号的.cpp文件中编写槽函数

void CCSDS122::receiveRate(QString rate)
{
ui.textBrowser_Pix->setText(rate);
}

5. 连接信号和槽

connect(dialog2, SIGNAL(sendRate(QString)), this, SLOT(receiveRate(QString)));

时间: 2024-10-10 01:02:37

使用emit发出信号的相关文章

QT_StepByStep(3)--创建一个对话框

FINDDIALOG_H 头文件: #ifndef FINDDIALOG_H #define FINDDIALOG_H #include <QtGui/QDialog> /*声明四个用到的类*/ class QCheckBox; class QLabel; class QLineEdit; class QPushButton; /*首先定义一个派生类QDialog,基类是FindDialog*/ class FindDialog : public QDialog { /*Q_OBJECT 是宏

QT 中 关键字讲解(emit,signal,slot)

Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法.作为一种通用的处理机制,信号与反应槽非常灵活,可以携带任意数量的参数,参数的类型也由用户自定.同时其本身也是类型安全的,任何一个从QObject或其子类继承的用户类都可以使用信号与反应槽. 信号的作用如同Windows系统中的消息.在Qt中,对于发出信号的对象来说,它并不知道是谁接收了这个信号.这样的设计可能在某些地方会有些不便,但却杜绝了紧耦合,于

QT开发(十三)——QT信号与槽机制

QT开发(十三)--QT信号与槽机制 一.QT消息模型 QT封装了具体操作系统的消息机制,遵循经典的GUI消息驱动事件模型. QT定义了与操作系统消息相关的自己的概念,即信号与槽. 信号signal是由操作系统产生的消息. 槽slot是程序中的消息处理函数. connect将系统消息绑定到消息处理函数. 信号到槽的连接必须发生在两个QT对象间. bool QObject::connect ( const QObject * sender, //发生对象 const char * signal,

关于Qt信号与槽机制的传递方向性研究(结论其实是错误的,但是可以看看分析过程)

最近由于项目的需求,一直在研究Qt.信号与槽机制是Qt的一大特色,该机制允许两者间传递参数,依次来实现对象间的通信.这个参数会分别存在于信号的参数列表和槽函数的参数列表中.需要注意的是,若将槽函数绑定至信号,槽函数的参数列表元素数目只能少于等于信号的参数列表元素数目.而且顺序和类型不能改变.至于缺少的参数应从信号参数尾部开始缺少. 突然今天想起来一个问题,如果一个对象发出信号,将内部的一个成员变量(非简单类型)作为参数向外发送,槽函数就可以接收到这个对象,那么槽函数是否可以完全操作这个对象呢?如

QThread 与 QObject的关系(QObject可以用于多线程,可以发送信号调用存在于其他线程的slot函数,但GUI类不可重入)

QThread 继承 QObject..它可以发送started和finished信号,也提供了一些slot函数. QObject.可以用于多线程,可以发送信号调用存在于其他线程的slot函数,也可以postevent给其他线程中的对象.之所以可以这样做,是因为每个线程都有自己的事件循环. 在进行下面的讲解之前,应该了解的重要的一点是:QThread 对象所在的线程,和QThread 创建的线程,也就是run()函数执行的线程不是同一个线程.QThread 对象所在的线程,就是创建对象的线程.我

Qt 和 Boost关于信号和槽的对比说明

对比 无论是 Qt 的实现方式还是 Boost 的实现方式,除了必须的定义信号和槽的类之外,都不需要额外的类. 两种实现都解决了类爆炸的问题.下面让我们对照着来看一下我们前面的分析. 两个不同的术语以及各自的动作:信号和槽: 在一个地方(信号)可以连接零个或者多个回调函数(槽)同时也是多对多的,一对多,多对多: 焦点在于连接本身,而不是提供者或者消费者: 不需要手工为了一个连接创建新的类: 连接仍旧是类型安全的. 这五点是信号槽系统的核心,Qt 和 boost 都拥有这些特性. 下面则是二者的不

Qt之信号槽连接——基于字符串与基于函数的连接之间的不同(译)

从Qt5.0开始,Qt提供了两种不同的方式进行信号槽的连接:基于字符串的连接语法.基于函数的连接语法.这两种连接语法各有利弊,下面的表总结了它们的不同点. 下面几部分详细解释了它们之间的不同,并且说明对于每种连接语法如何使用各自的优点. 类型检查以及隐式类型转换 基于字符串的连接是在运行时通过字符串比较来进行类型检查,这种方式有3个局限性: 1.只有在程序运行后才能查出连接错误: 2.信号和槽之间不能进行隐式转换: 3.类型定义和名字空间不能被识别. 第2第3个局限存在的原因是,字符串的比较并不

Qt跨线程发送信号与元数据

转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39395025 Qt的signals/slots是可以用在线程间的.由于事件循环(event loop)是在主线程完成的,所以在非主线程发送一个信号时,对应的槽函数将会由主线程执行. 熟悉多线程的读者应该都感受到这里会有一个微妙的问题.如果signals/slots的函数参数是一个自己定义的类型.比如自己定义了一个Student类,信号函数为sendStudent(const Stude

Qt 信号-槽的同步与异步处理

通常使用的connect,实际上最后一个参数使用的是Qt::AutoConnection类型:Qt支持6种连接方式,其中3中最主要: 1.Qt::DirectConnection(直连方式)(信号与槽函数关系类似于函数调用,同步执行) 当信号发出后,相应的槽函数将立即被调用.emit语句后的代码将在所有槽函数执行完毕后被执行. 2.Qt::QueuedConnection(排队方式)(此时信号被塞到信号队列里了,信号与槽函数关系类似于消息通信,异步执行) 当信号发出后,排队到信号队列中,需等到接