【发布时间】:2013-06-19 12:03:06
【问题描述】:
我在 c++ 中有这两个类
GUI.cpp
#include "AL_GUI.h"
#include <QtGui/QApplication>
#include "mainwindow.h"
GUI::GUI() {
}
void GUI::startGUI(){
int c=1;
char *array[10];
char** v = &array[0];
QApplication qa(c,v);
w.show();
qa.exec();
}
void GUI::notifyAlert(){
}
GUI::~GUI() {
// TODO Auto-generated destructor stub
}
GUI.h
#include <QtGui/QApplication>
#include "mainwindow.h"
#include "mainwindow.h"
#ifndef GUI_H_
#define GUI_H_
class GUI {
public:
GUI();
virtual ~GUI();
void startGUI();
void notifyAlert();
private:
MainWindow w;
};
#endif
但是当我运行这个程序时,我遇到了错误: QWidget:必须在 QPaintDevice 之前构造一个 QApplication
如何在 gui.h 中声明 MainWindow w 以使我不会收到此错误
【问题讨论】:
-
我会让 w 指针使用 MainWindow 的前向声明,并从 GUI.h 中删除所有包含(包括 mainwindow.h 的 2 个包含)。然后就像塞巴斯蒂安的回答说首先构建 QApplication 。
-
你可以把代码发给我吗?