2011-09-18 111 views
5

內部部件我有一個項目,海軍陸戰隊員和我有以下的文件結構。如何顯示主窗口

marines.pro

表格

iran.ui marines.h

頁眉

iran.h marines.h

來源

伊朗。 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中所做的窗口小部件?

回答

12

這一切都取決於你如何要顯示的控件。

  1. ,你可以在你的主窗口布局添加到您的核心部件,如果您希望自定義窗口小部件是主窗口的centralWidget然後用setCentralWidget
  2. 如果您希望自定義窗口小部件添加到佈局
  3. 將自定義小部件作爲子窗口,然後將MdiArea添加到您的MainWindow中。然後將自定義小部件添加到您的MdiArea。
  4. 如果你只是想顯示自定義窗口小部件的窗口,然後只是「widget.show()」

其更好看Qt's examples to understand how a MainWindow is used.

+0

感謝您的選項。你能解釋一些選項4 – Gandalf

+0

很好,在海軍陸戰隊的構造函數中調用iran->顯示()作爲安德烈建議或伊朗的構造函數,你可以只調用show()或等。無論您就可以 – blueskin

+0

創建伊朗對象調用顯示()如果我可以補充,我相信選擇4將需要*在構造父= 0(這意味着它是沒有任何其他部件的一個孩子,將作爲窗口創建)我結束了使用QStackedWidget – Rachael

2
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

。 – Gandalf

+0

這顯示它是一個單獨的窗口,或從blueskin的答案中解決方案(4)。 – TimZaman