Seite 1 von 1
QSplitter minimale Größe festlegen [gelöst]
Verfasst: 7. November 2007 11:18
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?
Verfasst: 7. November 2007 12:22
von Flachkoepper
Das wird wohl eher an deinen einzelnen Widgets liegen. Kleiner als minimumSizeHint lassen sich Widgets allgemein nur sehr ungern machen.
Verfasst: 7. November 2007 12:30
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?
Verfasst: 7. November 2007 13:40
von Flachkoepper
aber ein leeres QWidget bzw. QTreeview aht doch keine
minimale Größe oder doch?
Schon getestet?
Verfasst: 7. November 2007 17:01
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.
Verfasst: 7. November 2007 17:58
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.
Verfasst: 8. November 2007 07:55
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...
[gelöst] QSplitter minimale Größe festlegen
Verfasst: 13. November 2007 16:54
von archer
War ein Problem im TreeView.
Ich setzte jetzt die Spaltenbreite.