Seite 1 von 1

Breite des Splitters in QMainWindow ändern

Verfasst: 10. September 2008 10:57
von nvano
hallo,

wie kann ich die breite des splitters ändern der das qmainwindow/centralwidget und ein qdockwidget trennt.

dieser splitter wird automatisch generiert wenn ich ein centralwidget setze im qmainwindow und dann qdockwidget hinzufüge.

wie kann ich dessen breite (in pixeln) ändern?

danke

Verfasst: 10. September 2008 14:24
von FaS
Erstens ist es sinnlos die "Breite" dieses Splitters zu ändern, welche sich vom linken bis zum rechten Fensterrand erstreckt (falls er in diesem Sinne überhaupt existiert). Und wenn du darüber nachdenkst, was genau du eigentlich willst, fällt dir die Lösung sicher selbst ein :wink:.

Verfasst: 10. September 2008 14:51
von chrootdev
Ich vermute das sich das dockwidget entweder links oder rechts befindet, und von daher geht der splitter nicht horizontal sonder vertikal.

Versuch dem dockwidget mit setFixedWidth() eine feste breite zu geben, dann kann er nicht mehr kleiner als diese feste breite gemacht werden.

Verfasst: 10. September 2008 15:11
von nvano
ok, ich habe mich etwas falsch ausgedrückt.

ich meine eigentlich den qsplitterhandle (die ungefähr 5 pixel breite leiste zwischen dem central widget und dem dockwidget).

danke

Verfasst: 10. September 2008 17:22
von upsala
Versuchs mal über ein Style-Sheet.

Verfasst: 10. September 2008 17:51
von nvano
ja, mit style sheets lässt sich so ziemlich alles ändern am separator mit QMainWindow::separator.

bloß die breite nicht! leider.
habs mit width: 1px und height: 1px versucht.

Verfasst: 10. September 2008 18:59
von FaS
Steht doch in der Doku, wie man die Breite ändern kann. Genau dein Beispiel! Scheint nur irgendwie verkehrt herum zu sein: Die Breite des Grips eines horizontalen QSplitters konnte ich mit
QSplitter::handle:vertical { height: 100px; }
erfolgreich auf 100 Pixel setzen.

Verfasst: 11. September 2008 09:26
von nvano
das funktioniert leider auch nicht.

und soweit ich in der doku gelesen habe ist das kein QSplitter/Handle sondern ein QMainWindow::Separator, den man laut Doku http://doc.trolltech.com/4.4/stylesheet ... mainwindow

so ändert: QMainWindow::separator {background: yellow;width: 10px;height: 10px;}

das mit der farbe funktioniert auch, bloß die breite lässt sich nicht ändern. wie gesagt, ich möchte den separator wie eine haarlinie aussehen lassen (1 px).

Verfasst: 11. September 2008 12:15
von upsala
Funktioniert das mit der Breite wirklich nicht, oder nur der extrem kleine Werte nicht?

Verfasst: 11. September 2008 13:05
von nvano
habe auch schon width: 200px; height: 200px; ausprobiert. da geht nichts, leider.

habe ähnliches Problem

Verfasst: 28. Januar 2009 19:07
von s-valve
Hallo habe ein ähnliches Problem.
Mein Widget basiert auf einem QSplitter und enthält ein QListWidget und ein QTabWidget. Beim anzeigen meines Widgets möhchte ich die Breite des QListWidget definieren (bspw. kleinste Breite), es soll jedoch bis zur maximalen breite über den Splitter ausziehbar bleiben.
Habe schon alle möglichen Einstellungen für die Breite des QListWidget probiert, komme aber zu keinem Ergebnis. Was gar nicht geht wäre setFixedWidth(), damit wäre die Liste nicht mehr in der Breite veränderbar.
Hat jemand einen Tipp?

Grüße,
M

Verfasst: 28. Januar 2009 19:21
von FaS
void QWidget::setMinimumWidth( int minw )??
Gruß,
FaS

Verfasst: 28. Januar 2009 19:25
von s-valve
Nein, funktioniert nicht. Es wird trotzdem die vorher eingestellte maximale Breite aufgezogen, wenn das Hauptwidget sichtbar wird.

Grüße