开发者

How to display a widget inside a main window

I have a project marines and i have the following files structure.

marines.pro

FORMS

iran.ui marines.h

Headers

iran.h marines.h

Sources

iran.cpp main.cpp marines.cpp

I added the widget iran in the project marines.

Here is marines.cpp

#include <QtGui>
#include "marines.h"
#include "ir开发者_StackOverflowan.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;
}

and here is my iran.cpp

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

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

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

How can i display the widget iran i made in qt designer?.


It all depends on how you want the widget to be displayed.

  1. you could add a layout to your central widget in your MainWindow and add your custom widget to the layout
  2. if you want your custom widget to be centralWidget of the MainWindow then use setCentralWidget
  3. If you want the custom widget as a subWindow then add MdiArea to your MainWindow. Then add custom widget to you MdiArea.
  4. If you just want the custom widget to be displayed as a window then just "widget.show()"

Its better to look at Qt's examples to understand how a MainWindow is used.


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
    ...
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜