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

Alles rund um die Programmierung mit Qt
Antworten
doc750
Beiträge: 16
Registriert: 28. Dezember 2006 09:39
Wohnort: Rosenheim

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

Beitrag 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
Zuletzt geändert von doc750 am 30. Dezember 2006 12:33, insgesamt 1-mal geändert.
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
doc750
Beiträge: 16
Registriert: 28. Dezember 2006 09:39
Wohnort: Rosenheim

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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".
doc750
Beiträge: 16
Registriert: 28. Dezember 2006 09:39
Wohnort: Rosenheim

Gelöst

Beitrag von doc750 »

Hallo,

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

Gruß Uwe
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag 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
-Marco-
Beiträge: 47
Registriert: 4. April 2006 16:35

Beitrag von -Marco- »

übrigens, man muß den Splitter in Qt als Fenster sehen und nicht wie in der MFC als den 'Verschieber'.
Gruß Marco
Antworten