qt5 - Qt如何连接自定义库里的信号?
本文介绍了qt5 - Qt如何连接自定义库里的信号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我自己创建了库,比如:
class Lib : public QObject {
Q_OBJECT
signals:
void testSignal();
}
然后创建App,App中连接库:
class App :public QObject{
Q_OBJECT
public:
App(Lib *lib){
connect(lib, &Lib::testSignal, []{});
}
}
结果运行时返回:
QObject::connect: signal not found in Lib
需要对lib进行怎么样的修改才能正常连接信号?
解决方案
发现问题了,要正确连接动态库里的信号声明时需要正确export和import。
#ifdef LIBRARY
#define LIB_EXPORT Q_DECL_EXPORT
#else
#define LIB_EXPORT Q_DECL_IMPORT
#endif
class LIB_EXPORT Lib : public QObject {
Q_OBJECT
signals:
void testSignal();
}
这篇关于qt5 - Qt如何连接自定义库里的信号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文