Frage zu Splitter/Layouts

Alles rund um die Programmierung mit Qt
Antworten
SaschaH
Beiträge: 4
Registriert: 3. Januar 2011 17:38

Frage zu Splitter/Layouts

Beitrag von SaschaH »

Hallo,

ich habe mal eine Frage bezüglich Splitter/Layouts und hoffe ihr könnt mir weiterhelfen: meine Form ist durch einen Splitter in 2 Bereiche getrennt: auf der linken Seite ein vertikales Layout, rechts ein Tab-Steuerelement (siehe Anhang!). Der linke Bereich soll eigentlich ca. 1/3 der Fenstergröße einnehmen, das Tab-Widget entsprechend den Rest. Welche Eigenschaften muss ich denn nun setzen? Ich "experimentiere" nun schon seit Stunden und komme einfach nicht weiter!

Ausserdem habe ich die Eigenschaft "geomentry" des Fensters auf 750x550 eingestellt, das funktioniert aber auch nicht korrekt. Falls das noch wichtig sein sollte, das Fenster ist ein Child-Window innerhalb einer MDI-Anwendung. Und ich bin Umsteiger von C++/MFC, bzw. auch C# :wink:

LG, Sascha
Dateianhänge
Screenshot.jpg
Screenshot.jpg (74.99 KiB) 2356 mal betrachtet
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Beitrag von padreigh »

forumsuche: splitter

führt dich auf http://www.qtforum.de/forum/viewtopic.p ... t=splitter das führt dich auf http://www.c-plusplus.de/forum/277646-full und der Beitrag http://www.c-plusplus.de/forum/p1984683#1984683 könnte dir weiterhelfen

Das gewünschte Verhalten kannst du mE nicht direkt aus dem Creator heraus erzeugen. das 2/3 zu 1/3 Verhalten könntest du eventuell durch Stretchfaktoren von 2 für den linken Teil und 1 für den Tab-Teil erreichen.
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
SaschaH
Beiträge: 4
Registriert: 3. Januar 2011 17:38

Beitrag von SaschaH »

Das ist irgendwie alles nicht das was ich brauche, es muss doch möglich sein das auch über den Designer einzustellen. Mein größtes Problem dabei ist, das die Größe auch dann nicht angepasst wird, sobald ich anfange Steuerelemente in das TabWidget zu schieben. Dort sollen später nämlich ca. 200 Steuerelemente rein, aber bei der momentanen Größe ist das im Designer natürlich nicht möglich :roll:
SaschaH
Beiträge: 4
Registriert: 3. Januar 2011 17:38

Beitrag von SaschaH »

Ich hab jetzt beim TabWidget die Breite von minimumSize auf 550 gesetzt, damit erreiche ich in etwa das gewünschte Verhalten. Das einzige Problem ist noch, das ich das Fenster nun zur Laufzeit nicht mehr beliebig verkleinern kann, also falls jemand noch eine bessere Lösung kennt...
SaschaH
Beiträge: 4
Registriert: 3. Januar 2011 17:38

Beitrag von SaschaH »

@padreigh: Deine Links haben mir nun zum Teil doch noch geholfen, ich danke Dir!

Code: Alles auswählen

//-------------------------------------------------------------------------------------------- EVENT
// showEvent() - das Widget wird gleich angezeigt
//--------------------------------------------------------------------------------------------------

void AdressenForm::showEvent( QShowEvent *event )
{
    QList<int> list;
    
    // Aktuelle Aufteilung des Splitters ermitteln
    list = ui->splitter->sizes();

    QWidget::showEvent( event );

    // Minimalgrösse der Widgets aufheben // %% Todo: Steuerelemente richtig benamen
    setMinimumSize( 0, 0 );
    ui->tabWidget->setMinimumSize( 0, 0 );

    // Ursprüngliche Aufteilung des Splitters wiederherstellen
    ui->splitter->setSizes( list );
}
Antworten