QT自定义信号函数的那些坑

QT添加自定义信号时,需要注意以下几点,否则可能会报错,显示信号函数没有定义。

1.要继承自QObject(如果继承其它的类,其它类基类为QObject,就不需要再继承QObject)
2.类中要包含宏Q_OBJECT
3.执行qmake,否则一直提示信号函数未定义(如果实在不行,直接删除工程目录,类似于build-ModbusTcpClient-Desktop_Qt_5_9_9_MinGW_32bit-Release目录下所有内容,再重新编译)

头文件:
QT自定义信号函数的那些坑_第1张图片

对应的cpp文件中,emit发送该信号:
QT自定义信号函数的那些坑_第2张图片

其它使用该类中定义槽函数,与之信号连接:
test.h

 SerialPort *serialPort;           //串口句柄
private slots:
  void onSerialPort_Read(QByteArray data);

test.cpp创建对象,连接槽函数

serialPort = new SerialPort();
    connect(serialPort, SIGNAL(SerReadData(QByteArray)), this, SLOT(onSerialPort_Read(QByteArray)));

定义槽函数:

void test::onSerialPort_Read(QByteArray data){

}

你可能感兴趣的:(QT,C++,qt,c++,自定义信号,函数没有定义,QT跨类传递数据)