关于QT widget嵌套的问题

dongdetongxing dongdetongxing 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
由于本人原来是搞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'请教各位我应该怎么改?
...全文
评论 7
收藏 已收藏
分享
返回顶部
dongdetongxing
Qt 21,503 成员 26,693 内容