QSplitter minimale Größe festlegen [gelöst]

Alles rund um die Programmierung mit Qt
Antworten
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

QSplitter minimale Größe festlegen [gelöst]

Beitrag von archer »

Hallo,

ich habe mein Fenster mit einem QSplitter geteilt. Rechts ist ein QWidget, links ein QTreeView.
Es scheint so zu sein, das der Splitter die beiden Widgets nicht beliebig klein machen kann. Ich kann sie nur bis auf einen bestimmten Wert verkleinern, und dann wird die jeweilige Seite ausgeblendet.
Das ist auch alles gut so, aber ich möchte die minimale Größe bevor die Seite ausgeblendet wird einstellen. Beide Seiten haben keine Größenbeschränkungen, daher denke ich das das eine Einstellung vom QSplitter sein muss.
Kann mir jemand bei diesem Problem helfen?
Zuletzt geändert von archer am 4. Februar 2008 11:18, insgesamt 1-mal geändert.
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Das wird wohl eher an deinen einzelnen Widgets liegen. Kleiner als minimumSizeHint lassen sich Widgets allgemein nur sehr ungern machen.
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Das stimmt schon, aber ein leeres QWidget bzw. QTreeview aht doch keine
minimale Größe oder doch?
Und warum ist das bei beiden dieselbe minimale Größe?
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

aber ein leeres QWidget bzw. QTreeview aht doch keine
minimale Größe oder doch?
Schon getestet?
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Ja, habe ich. Esgibt ein minimumSizeHint(). Dieses ist jedoch wesentlich kleiner als das was ich kann.
Ich kann es nur auf das ca. 3fache verkleinern.
Vielleicht hat das was der closestLegalPosition() im QSplitter zu tun.
Die kann ich leider nicht setzen, ich weiss jedenfalls nicht wie.
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Hmm, seltsam, bei mir kann ich die Dinger genau auf die minimumSizeHint() verkleinern und danach werden sie ausgeblendet.
Zeig mal den Code, vielleicht liegt es an was anderem.
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Ok, Details.

Ich habe ein ui mit zwei Widgets, rechts und links. Diese werden als Container für ein QTreeView und ein vom Baumeintrag abhängiges Widget gefüllt.

Zur Laufzeit, bevor die Container gefüllt werden, kommt der Splitter dazu:

Code: Alles auswählen

insertSplitter(Qt::Horizontal, this, leftWidget(), rightWidget());
Ein Container wird dann gefüllt mit:

Code: Alles auswählen

bool CCentralWidgetBaseH::addToLeftWidget(QWidget* apWidget)
{
    if (apWidget != NULL)
    {
        apWidget->setParent(leftWidget());
        leftWidget()->layout()->addWidget(apWidget);
        apWidget->show();
        return true;
    }
    return false;
}
Wenn die Container leer sind kann ich Sie auch beliebig klein machen, aber wenn links ein QTreeView (addToLeftWidget(new QTreeView (NULL)); hinzukommt. habe ich ein minimum.
das QTreeview ist komplett leer, keine weiteren Eigenschaften als die Qt-Einstellungen sind gesetzt.
Habe schon versucht an allen mir bekannten Schrauben herumzudrehen, minimumSize() vom TreeView vom TreeViewHeader...
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

[gelöst] QSplitter minimale Größe festlegen

Beitrag von archer »

War ein Problem im TreeView.
Ich setzte jetzt die Spaltenbreite.
Antworten