开发者

How to display a widget inside a main window

开发者 https://www.devze.com 2023-04-05 12:46 出处:网络
I have a project marines and i have the following files structure. marines.pro FORMS iran.ui marines.h Headers

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

精彩评论

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