关于QT widget嵌套的问题
由于本人原来是搞MFC,最近有个QT程序要搞,但是做的时候发现widget嵌套的时候,总是有问题,主要问题如下测试工程,请各位指教
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
复制代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "widget1.h"
#include "widget2.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
mywidget1 = new widget1();
mywidget2 = new widget2();
ui->horizontalLayout->addWidget(mywidget1);
ui->horizontalLayout->addWidget(mywidget2);
}
MainWindow::~MainWindow()
{
delete ui;
}
复制代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class widget1;
class widget2;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
widget1 *mywidget1;
widget2 *mywidget2;
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
复制代码
#ifndef WIDGET1_H
#define WIDGET1_H
#include "mainwindow.h"
#include <QWidget>
namespace Ui {
class widget1;
}
class widget1 : public QWidget
{
Q_OBJECT
public:
explicit widget1(QWidget *parent = 0);
~widget1();
signals:
public slots:
private:
Ui::widget1 *ui;
};
#endif // WIDGET1_H
复制代码
#ifndef WIDGET2_H
#define WIDGET2_H
#include <QWidget>
namespace Ui {
class widget2;
}
class widget2 : public QWidget
{
Q_OBJECT
public:
explicit widget2(QWidget *parent = 0);
~widget2();
signals:
public slots:
private:
Ui::widget2 *ui;
};
#endif // WIDGET2_H
复制代码
#include "widget1.h"
widget1::widget1(QWidget *parent) : QWidget(parent), ui(new Ui::widget1)
{
ui->setupUi(this);
}
widget1::~widget1()
{
delete ui;
}
复制代码
#include "widget2.h"
widget2::widget2(QWidget *parent) : QWidget(parent), ui(new Ui::widget2)
{
ui->setupUi(this);
}
widget2::~widget2()
{
delete ui;
}
复制代码
我创建了一个基本主窗口,在主窗口中随意拖动了一个横向布局layout,然后在这个layout中拖进去并行放置了两个widget,然后创建了两个widget类,将这两个类对应到layout中的两个widget,编译的时候,发现与我正常项目中遇到的问题一模一样,invalid use of incomplete type 'class Ui::widget1',forward declaration of 'class Ui::widget1'请教各位我应该怎么改?