我对Qt还比较新手。我对现有的Qt应用程序进行了一些简单的修改,但是还没有从头开始创建过。
我对C++的某些方面(如类继承等)也没有太多经验。
我创建了一个基于Code::Blocks Qt4的新项目,并对模板进行了一些修改。我添加了两个文件。
目前该项目包含三个文件:main.cpp、app.h和app.cpp。
这是main.cpp的内容:
这就是 app.h 的样子:
这是
我不知道该如何处理这个。
我对C++的某些方面(如类继承等)也没有太多经验。
我创建了一个基于Code::Blocks Qt4的新项目,并对模板进行了一些修改。我添加了两个文件。
目前该项目包含三个文件:main.cpp、app.h和app.cpp。
这是main.cpp的内容:
#include <QTimer>
#include "app.h"
int main(int argc, char* argv[]) {
TestApp app(argc, argv);
QTimer::singleShot(1000, &app, SLOT(timeout()));
return app.exec();
}
这就是 app.h 的样子:
#ifndef APP_H_INCLUDED
#define APP_H_INCLUDED
#include <QApplication>
class TestApp: public QApplication {
public:
TestApp(int &argc, char **argv);
public slots:
void timeout();
};
#endif
这是
app.cpp
文件的内容:#include "app.h"
#include <QDebug>
TestApp::TestApp(int &argc, char **argv): QApplication(argc, argv) {
}
void TestApp::timeout() {
qDebug() << "timeout called";
}
我预期程序在启动后一秒钟打印出"timeout called"。不幸的是,这并没有起作用。当调用QTimer::singleShot()
时,控制台显示:
Object::connect: No such slot QApplication::timeout() in [path to the main.cpp file]
Object::connect: (receiver name: 'QtTests')
我不知道该如何处理这个。
Q_OBJECT
放入类声明中是不够的。 - MelebiusQT4_WRAP_CPP
,这样cmake就会解析头文件并生成moc文件。 - BЈовић