将小部件添加到布局

时间:2017-07-02 21:33:01

标签: qt

虽然之前已经提出过这样的问题,但我仍然面临一些问题。我对form.ui文件的更改没有得到反映。 这是我的文件代码。我的目标是将form.ui文件小部件放在mainwindow.h中另一个ui文件的布局中。我的form.ui有一个按钮和单选按钮。 它正在编译和运行,但只显示mainwindow.ui小部件,而不是表单。

form.h

#ifndef FORM_H
#define FORM_H

#include <QWidget>

namespace Ui {
class Form;
}

class Form : public QWidget
{
Q_OBJECT

public:
    explicit Form(QWidget *parent = 0);
    ~Form();

private:
    Ui::Form *ui;
};

#endif // FORM_H

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

form.cpp

#include "form.h"
#include "ui_form.h"

Form::Form(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Form)
{
    ui->setupUi(this);
}

Form::~Form()
{
    delete ui;
}

的main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "form.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    Form *k = new Form(this);
    ui->verticalLayout->addWidget(k);
}

MainWindow::~MainWindow()
{
    delete ui;
}

0 个答案:

没有答案