首页| 论坛| 消息

标题:C++11标准库类如何使用信号槽机制
作者:424670725
日期:2016-09-15 09:49
内容:

现在写了个基类
class base_class
{
public:
virtual ~base_class() {}
virtual std::string base_type(){ return ""; }
virtual int execute() = 0;
};又写了个派生类
class class_2 : public base_class
{
Q_OBJECT
public:
~class_2(){}
virtual int execute();

signals:
void sig_finished();
};连接到主界面中
std::shared_ptr test = std::shared_ptr( new class_2);
connect(test.get(), SIGNAL(sig_finished()), this, SLOT(slot_init_sys()), Qt::QueuedConnection);
这样子会提示找不到信号函数,如果基类base_class继承QObject的话,又提示错误
error: undefined reference to `vtable for base_class'
error: undefined reference to `base_class::qt_metacast(char const*)'
error: undefined reference to `base_class::qt_metacall(QMetaObject::Call, int, void**)'
moc_class_2.cpp:-1: error: undefined reference to `base_class::staticMetaObject'
error: undefined reference to `vtable for base_class'
请各位大侠指点指点!!!!


#1 [kaon 09-15 20:30]
请继承QObject,不谢
#2 回 kaon 的帖子 [424670725 09-17 10:59]
kaon:请继承QObject,不谢 (2016-09-15 20:30) 
基类已经继承QObject了
#3 [dbzhang800 09-18 10:55]
重新运行一下qmake,或者在你的.pro中随便加个空行
#4 回 dbzhang800 的帖子 [424670725 09-18 22:02]
dbzhang800:重新运行一下qmake,或者在你的.pro中随便加个空行 (2016-09-18 10:55) 
您说的正确,我通过这样操作解决了这个问题!感谢!!

回复 发表
主题 版块