QT添加自定义信号时,需要注意以下几点,否则可能会报错,显示信号函数没有定义。
1.要继承自QObject(如果继承其它的类,其它类基类为QObject,就不需要再继承QObject)
2.类中要包含宏Q_OBJECT
3.执行qmake,否则一直提示信号函数未定义(如果实在不行,直接删除工程目录,类似于build-ModbusTcpClient-Desktop_Qt_5_9_9_MinGW_32bit-Release目录下所有内容,再重新编译)
头文件:
对应的cpp文件中,emit发送该信号:
其它使用该类中定义槽函数,与之信号连接:
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){
}