2011-09-18 16 views
5

Proje marines'im var ve aşağıdaki dosya yapısına sahibim.Ana pencerenin içinde pencere öğesi nasıl görüntülenir

marines.pro

FORMLAR

iran.ui marines.h

Başlıkları

iran.h marines.h

Kaynaklar

İran. cpp main.cpp marines.cpp

Ine widget'ını proje marinesine ekledim. İşte

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

ve burada benim iran.cpp

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

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

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

i iran i qt tasarımcı yapılan widget'ı görüntüleyebilir nasıl ?.

cevap

12

Her şey, pencere öğesinin nasıl görüntülenmesini istediğinize bağlıdır.

  1. Eğer MainWindow içinde merkez parçacık için bir düzen eklemek ve özel widget istiyorsanız MainWindow ait centralWidget sonra setCentralWidget
  2. kullanmak olmasını istiyorsanız düzeni
  3. için özel bir widget ekleyebilirsiniz subWindow olarak özel pencere öğesi daha sonra MainWindow'unuza MdiArea ekleyin. Sonra size özel widget'ı MdiArea ekleyin.
  4. sadece özel Widget sonra sadece "widget.show()"

Its daha iyi seçenekler için Qt's examples to understand how a MainWindow is used.

+0

teşekkür bakmak için bir pencere olarak görüntülenmesini istiyorsanız. Biraz daha fazla seçenek 4. – Gandalf

+0

açıklayabilir misiniz, marines kurucusu iran-> show() 'ı andrei olarak veya iran kurucusu olarak çağırırsanız sadece show() veya iran object call show()' ı nerede oluşturursunuz – blueskin

+0

Eğer ekleyebiliyorsam, 4 numaralı seçeneğin kurucuya * ebeveyn = 0 olmasını (yani başka bir widget'ın çocuğu olmadığı ve pencere olarak oluşturulacağı anlamına gelir) – 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

QStackedWidget kullanarak sona erdiğini düşünüyorum. – Gandalf

+0

Bu, ayrı bir pencere veya blueskin cevabından çözüm (4) olarak gösterir. – TimZaman

İlgili konular