Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 "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;
}

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?.

like image 833
Gandalf Avatar asked Sep 18 '11 19:09

Gandalf


1 Answers

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.

like image 87
Chenna V Avatar answered Oct 19 '22 22:10

Chenna V