QSplitter voreinstellen
Verfasst: 14. Dezember 2007 18:12
Hallo,
ich bin noch recht neu in Qt, aktuell setze ich die Version 4.3.3 unter OSX ein. Ich habe nun ein Fenster erzeugt und möchte nun, dass der Hauptsplitter das Fenster in 2:1 unterteilt. Ich möchten die OpenGL Fenster links anzeigen und rechts eine Leiste mit verschiedenen Menüs.
Hier mal mein Code:
Mit diesem Code ist der Hauptsplitter komplett am linken Rand, so dass man die OpenGL Fenster nicht sieht.
Danke für die Hilfe
Phil
ich bin noch recht neu in Qt, aktuell setze ich die Version 4.3.3 unter OSX ein. Ich habe nun ein Fenster erzeugt und möchte nun, dass der Hauptsplitter das Fenster in 2:1 unterteilt. Ich möchten die OpenGL Fenster links anzeigen und rechts eine Leiste mit verschiedenen Menüs.
Hier mal mein Code:
Code: Alles auswählen
/** erzeugt das Hauptlayout */
void MainWindow::createLayout() {
//Hauptunterteilung in zwei horizonatel Bereiche (rechts = Property Menü für die Objekte / links = 4 OpenGL Ansichten)
this->moLayout = new QSplitter(Qt::Horizontal, this->centralWidget());
this->moLayout->setStretchFactor(1, 1);
//vier OpenGL Ansichten erzeugen und die Perspektiven manuell einstellen
this->moOpenGL_LeftUp = new WidgetOpenGL(this);
this->moOpenGL_RightUp = new WidgetOpenGL(this);
this->moOpenGL_LeftDown = new WidgetOpenGL(this);
this->moOpenGL_RightDown = new WidgetOpenGL(this);
//Unterteilung für den linken Bereich (OpenGL Ansichten)
this->moLayoutOpenGL = new QSplitter(Qt::Vertical, this);
this->moLayoutOpenGL->setStretchFactor(1, 1);
//Unterteilung OpenGL oben
this->moLayoutOpenGL_Up = new QSplitter(Qt::Horizontal, this);
this->moLayoutOpenGL_Up->setStretchFactor(1, 1);
this->moLayoutOpenGL_Up->addWidget( this->moOpenGL_LeftUp );
this->moLayoutOpenGL_Up->addWidget( this->moOpenGL_RightUp );
//Unterteilung OpenGL unten
this->moLayoutOpenGL_Down = new QSplitter(Qt::Horizontal, this);
this->moLayoutOpenGL_Down->setStretchFactor(1, 1);
this->moLayoutOpenGL_Down->addWidget( this->moOpenGL_LeftDown );
this->moLayoutOpenGL_Down->addWidget( this->moOpenGL_RightDown );
//einfügen in den OpenGL Splitter
this->moLayoutOpenGL->addWidget( this->moLayoutOpenGL_Up );
this->moLayoutOpenGL->addWidget( this->moLayoutOpenGL_Down );
//Property Widget einfügen
this->moProperty = new WidgetProperties();
//Layouts ineinanderfügen und im Hauptfenster die Unterteilung setzen
this->moLayout->addWidget( this->moLayoutOpenGL );
this->moLayout->addWidget( this->moProperty );
this->setCentralWidget( this->moLayout );
}
Danke für die Hilfe
Phil