如何在主窗口中显示窗口小部件

时间:2011-09-18 19:02:42

标签: qt qt4 qt-designer

我有一个项目海军陆战队,我有以下文件结构。

marines.pro

FORMS

iran.ui marines.h

接头

iran.h marines.h

来源

iran.cpp main.cpp中 marines.cpp

我在项目海军陆战队员中添加了小部件iran。

这是marines.cpp

#include <QtGui>
#include "marines.h"
#include "iran.h"


marines::marines(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::marines)
{
    ui->setupUi(this);
    connect(ui->actionExit, SIGNAL(triggered()), this, SLOT(close()));
    connect(ui->actionIran, SIGNAL(triggered()), this, SLOT(ir()));
}

void marines::ir()
{
//slot to display iran ui inside my main window
}

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

这是我的iran.cpp

#include "iran.h"
#include <QtGui>

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

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

我如何显示我在qt designer中制作的小部件?

2 个答案:

答案 0 :(得分:12)

这完全取决于您希望窗口小部件的显示方式。

  1. 您可以在MainWindow中的中央窗口小部件中添加布局,并将自定义窗口小部件添加到布局中
  2. 如果您希望自定义窗口小部件为MainWindow的centralWidget,则使用setCentralWidget
  3. 如果您想将自定义窗口小部件作为子窗口,请将MdiArea添加到您的MainWindow。然后为您添加自定义小部件MdiArea。
  4. 如果您只想将自定义窗口小部件显示为窗口,那么只需“widget.show()”
  5. 最好看一下Qt's examples to understand how a MainWindow is used.

答案 1 :(得分:3)

marines::marines(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::marines)
{
    ui->setupUi(this); // after this
    iran *ir = new iran(); // create variable ir
    ir->show(); // show window
    ...
}