QT新手 请大家帮忙解决一个问题 谢谢了

shuishigua 2012-01-08 11:19:49
#include <QCoreApplication>
#include <QObject>
#include <QTimer>


class Test:public QObject{
Q_OBJECT
public slots:
void say();
};


void Test::say(){
qDebug("I am a slots!!!\n");
}



int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug("starting!\n");

QTimer timer;
timer.setInterval(2000);
timer.start();

Test t;

QObject::connect(&timer,SIGNAL(timeout()),&t,SLOT(say()));

return a.exec();
}

请高手帮忙解决这个QT问题 我在QT Creator中的QT4 Console Application中写了这段代码 但是始终提示 “error: collect2: ld returned 1 exit status”
请问要怎么写才正确?谢谢
...全文
133 点赞 收藏 10
写回复
10 条回复
挣扎中前行 2012年01月11日
原来如此
回复 点赞
p89787259 2012年01月11日
头文件里Q_OBJECT宏,需要MOC成标准C++代码,再编译,MOC要求函数声明和实现分离。
回复 点赞
duyu89757901 2012年01月11日
我也遇到这个问题,但是也不知道为啥。
我的解决办法:将编译工具设置为环境变量 接着就make clean
rm Makefile -rf
qmake
make
./****
就可以了
回复 点赞
miseluocha 2012年01月10日
[Quote=引用 4 楼 jdwx1 的回复:]

头文件里有Q_OBJECT宏,需要MOC成标准C++代码,再编译,MOC要求函数声明和实现分离。
[/Quote]

这是理论指导,不错,又长知识了
回复 点赞
su583304195 2012年01月10日
4楼正解
如果要使用信号和槽,Qt类在声明文件中加上Q_OBJECT宏。它包含了实现信号和槽机制所需要的函数之类的东西。类似MFC中消息机制的声明宏。
回复 点赞
jdwx 2012年01月09日
头文件里有Q_OBJECT宏,需要MOC成标准C++代码,再编译,MOC要求函数声明和实现分离。
回复 点赞
liufei315336300 2012年01月09日
[Quote=引用 1 楼 miseluocha 的回复:]
你分成头文件和主文件试试
[/Quote]


这样可以的,我试过了。
回复 点赞
kalso4212h2o 2012年01月09日
我也新手,不会解决,帮顶
回复 点赞
miseluocha 2012年01月09日
你分成头文件和主文件试试
回复 点赞
发动态
发帖子
Qt
创建于2009-11-04

1.0w+

社区成员

2.5w+

社区内容

Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区公告
暂无公告