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

问题描述 投票:0回答:2

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

海军陆战队专业版

表格

伊朗.ui 海军陆战队.h

标题

伊朗.h 海军陆战队.h

来源

伊朗.cpp 主程序 海军陆战队.cpp

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

这是海军陆战队.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中制作的伊朗小部件?.

qt qt4 qt-designer
2个回答
12
投票

这完全取决于您希望小部件如何显示。

  1. 您可以添加布局到主窗口中的中央小部件,然后添加您的自定义小部件到布局。
  2. 如果您希望自定义小部件成为主窗口的centralWidget,则使用setCentralWidget。
  3. 如果您希望自定义小部件作为子窗口,请将 MdiArea 添加到主窗口。然后将自定义小部件添加到您的 MdiArea。
  4. 如果您只想将自定义小部件显示为窗口,则只需使用
    widget.show()

最好查看 Qt 的示例来了解如何使用 MainWindow。


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
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.