Seite 1 von 1

[solved] QSplitter - hänge fest :-(

Verfasst: 28. Dezember 2006 10:01
von doc750
Hallo,

als MFC Oldie und QT newbe hänge ich bei meinem Vorhaben momentan fest und bräuchte einen Hinweis.

Kurz zum Vorhaben:
Splitter mit 3 Bereichen (1x links, 2xrechts). Links ist ein QTreeView - zum anzeigen der Verzeichnisse, rechts unten ein QTableView zum anzeigen der Dateien in diesem Verzeichnis und rechts oben sollen Details der markierten Dateien angezeigt werden.

Die Details sollen mit Edit-Felder und Combo-Boxen angezeigt werden, welche ich frei positionieren möchte.

Nach dem erfolglosen suchen in der QT Hilfe habe ich jedoch keine Idee, welche View-Klasse/Widget ich dem QSplitter mit addWidget hinzufügen soll.

Gibt es bei QT eine "Basis-Window" Klasse, die ich dem Splitter hinzufügen kann und in die ich die Widgets einhängen kann?

Die anderen beiden Bereiche (QTreeView, QTableView) arbeiten bereits wie gewünscht.

Kann mir jemand einen Tipp geben, in welche Richtung ich weitersuchen soll?

Danke und Gruß
Uwe

Verfasst: 28. Dezember 2006 10:15
von dontinelli
Schaue mal bei QHBoxLayout, QVBoxLayout und QGridLayout nach.
In diese Container kannst du alle Widgets packen und das Layout dann dem Splitter hinzufügen.
Mehr Infos zu Layouts: http://doc.trolltech.com/4.2/examples.h ... t-examples

Cheers
DonTinelli

Verfasst: 28. Dezember 2006 10:19
von upsala
Außerdem könntest du ein wenig mit dem Designer spielen um ein Gefühl für die Positionierung/Gruppierung von Widgets zu bekommen.

Verfasst: 28. Dezember 2006 10:31
von doc750
@DonTinelli,
danke für die Hinweise. Diese drei Klassen habe ich mir auch angeschaut, hatte aber die Befürchtung, dass insbesondere bei QHBoxLayout, QVBoxLayout die Positionierung nicht frei wählbar ist. Ich werde mir aufgrund deine Antwort, die QGridLayout Klasse nochmals genauer anschauen, vielleicht ermöglicht mir diese Klasse die notwendige Flexibilität der Positionierung.

@upsala,
vielen Dank für deinen Hinweis. Mit dem Designer habe ich mich überhaupt noch nicht beschäftigt. Ich denke, dass wenn ich das Problem mit dem einhängen der Widgets in den Splitter gelöst habe, ich mich mit dem Designer beschäftigen werden.
p.s. Grüße in das schöne Landshut. Uwe@Rosenheim/ex. Dorfen.



Vielen Dank für die prompte Hilfe.
Gruß Uwe

Verfasst: 28. Dezember 2006 10:59
von franzf
Du kannst alles, was von QWidget erbt, an den Splitter anhängen, u.a. auch einen Splitter ;)
Einfach mal bissl code:

Code: Alles auswählen

QSplitter *hSplitter = new QSplitter;
hSplitter->setOrientation( Qt::Horizontal );
QSplitter *vSplitter = new QSplitter;
vSplitter->setOrientation( Qt::Vertical );

QTreeView* linkeDateiUebersicht = new QTreeView;
QTreeView* rechtsUnten = new QTreeView;
MyFileProperties* rechtsOben = new MyFileProperties; 
// das MyFileProperty muss irgendwann
// im "Stammbaum" von QWidget erben.

vSplitter->addWidget( rechtsOben );
vSplitter->addWidget( rechtsUnten );
hSplitter->addWidget( linkeDateiUebersicht );
hSplitter->addWidget( vSplitter );

// wenn du direkt in einem QMainWindow bist:
setCentralWidget( hSplitter );
Mit weniger Aufwand gehts glaub ich net ;)
Du musst den TreeViews natürlich noch ein Model zuweisen (z.B. ein QDirModel).

Grüße
Franz

// Nachtrag:
Schau dich mal in den Qt-Examples / Demos um, da gibt es eines namens "Chip". Da kannste auch nochmal bissl "wühlen".

Gelöst

Verfasst: 29. Dezember 2006 12:52
von doc750
Hallo,

vielen Dank an alle. Ich konnte das Problem mit der Verwendung der QGridLayout Klasse lösen.

Gruß Uwe

Verfasst: 29. Dezember 2006 14:20
von dontinelli
Gut, dass wir dir helfen konnten.
Ändere bitte noch den Titel auf [gelöst].
Ich wünsche dir und allen anderen Lesern ein gutes neues Jahr!
DonTinelli

Verfasst: 30. Dezember 2006 21:55
von -Marco-
übrigens, man muß den Splitter in Qt als Fenster sehen und nicht wie in der MFC als den 'Verschieber'.