• 4102阅读
  • 3回复

[解决]在非主类里emit一个signal,无法通过编译 [复制链接]

上一主题 下一主题
离线lzhxu
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-13
我定义了一个类
class test2 : public QMainWindow
{
public:
    test2();
    void testsig();

signals:
  void mySignal();

};

#include "test2.h"

test2::test2()
{
    //emit mySignal();
}

void test2::testsig()
{
    emit mySignal();
}
编译提示E:/project/test1/test2.cpp:10: undefined reference to `test2::mySignal()'

但是同样的程序,放在主类mainwindow里就能编译,请问是什么原因。
[ 此帖被lzhxu在2010-01-13 11:14重新编辑 ]
离线午小夜

只看该作者 1楼 发表于: 2010-01-13
do not forget about Q_OBJECT.and then rerun qmake
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线lzhxu
只看该作者 2楼 发表于: 2010-01-13
引用第1楼午小夜于2010-01-13 10:21发表的  :
do not forget about Q_OBJECT.and then rerun qmake



已开始我用的就是Q_OBJECT的类,发现不行就改成了和主窗口一样的QMainWindow类,也是不行。该加的头文件也加了还是有问题。
请多加指点
离线lzhxu
只看该作者 3楼 发表于: 2010-01-13
是在class里面加个Q_OBJECT 就可以了。谢谢午小夜
快速回复
限100 字节
 
上一个 下一个