Seite 1 von 1

[gelöst] QMainWindow durch QSplitter einteilen

Verfasst: 8. November 2005 11:09
von MrLast
Moin (erster Post \o/ ;) )!

Ich habe ein QMainWindow, welches ich mit einem Splitter in mehrere Bereiche einteile. Das geht ganz simpel so:

Code: Alles auswählen

 ctor von MainWindow
mySplitter = new QSplitter(this);
mySplitter->addWidget(myTreeWidget);
mySplitter->addWidget(myFoo);
mySplitter->addWidget(myBar);
setCentralWidget(mySplitter);
Ergebnis:

Bild

Ich will aber im Splitter nochmal ein Feld horizontal unterteilen, ungefähr so:

Bild

Wie geht das :?: :?: Danke für eure Hilfe!

Verfasst: 8. November 2005 11:24
von FlorianBecker
Aus MyFoo einen Splitter machen und dort MyFoo und myFooBar einfügen.

Verfasst: 8. November 2005 11:43
von MrLast
Hm ich bekomms irgendwie nicht hin, dass Fenster ist weiterhin so aufgebaut wie bisher.
Wo liegt der Fehler bei diesem Code?

Code: Alles auswählen

	mySplitter        = new QSplitter(this);
	mySplitterVerti = new QSplitter(this);
	mySplitterVerti->setOrientation(Qt::Vertical);
	mySplitterVerti->addWidget(myFoo);
	mySplitterVerti->addWidget(myBar);  // 2x vergeben

	mySplitter->addWidget(myTreeWidget);
	mySplitter->addWidget(mySplitterVerti);
	mySplitter->addWidget(myBar);  // 2x vergeben

         setCentralWidget(mySplitter);

Verfasst: 8. November 2005 11:53
von klogg

Code: Alles auswählen

	mySplitter        = new QSplitter(this);
	mySplitterVerti = new QSplitter(this);
	mySplitterVerti->setOrientation(Qt::Vertical);
	mySplitterVerti->addWidget(myFoo);
	mySplitterVerti->addWidget(myBar);  // 2x vergeben
Probier mal mySplitterVerti = new QSplitter(mySplitter);
Das wäre jetzt so meine erste Idee...

HENNING

Verfasst: 8. November 2005 13:14
von MrLast
Schafft leider auch kein Abhilfe :(

Verfasst: 8. November 2005 13:29
von FlorianBecker
Was macht ein cleverer Mensch? Es baut sein Problem mit dem Designer nach und erhält folgende Ausgabe vom uic:

Code: Alles auswählen

splitter = new QSplitter(this);
    splitter->setOrientation(Qt::Horizontal);
    myTreeWidget = new QListWidget(splitter);
    splitter1 = new QSplitter(splitter);
    splitter1->setOrientation(Qt::Vertical);
    myFoo = new QListWidget(splitter1);
    myFooBar = new QListWidget(splitter1);
    vboxLayout1 = new QVBoxLayout(splitter1);
    vboxLayout1->setSpacing(6);
    vboxLayout1->setMargin(8);
    myBar = new QListWidget(splitter);