Breite des Splitters in QMainWindow ändern

Alles rund um die Programmierung mit Qt
Antworten
nvano
Beiträge: 6
Registriert: 16. Juli 2008 10:04

Breite des Splitters in QMainWindow ändern

Beitrag 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
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag 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:.
chrootdev
Beiträge: 70
Registriert: 18. April 2008 17:52

Beitrag 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.
nvano
Beiträge: 6
Registriert: 16. Juli 2008 10:04

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

Beitrag von upsala »

Versuchs mal über ein Style-Sheet.
nvano
Beiträge: 6
Registriert: 16. Juli 2008 10:04

Beitrag 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.
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag 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.
nvano
Beiträge: 6
Registriert: 16. Juli 2008 10:04

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

Beitrag von upsala »

Funktioniert das mit der Breite wirklich nicht, oder nur der extrem kleine Werte nicht?
nvano
Beiträge: 6
Registriert: 16. Juli 2008 10:04

Beitrag von nvano »

habe auch schon width: 200px; height: 200px; ausprobiert. da geht nichts, leider.
s-valve
Beiträge: 87
Registriert: 1. April 2007 15:03
Kontaktdaten:

habe ähnliches Problem

Beitrag 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
FaS
Beiträge: 184
Registriert: 25. Mai 2006 19:48
Kontaktdaten:

Beitrag von FaS »

void QWidget::setMinimumWidth( int minw )??
Gruß,
FaS
s-valve
Beiträge: 87
Registriert: 1. April 2007 15:03
Kontaktdaten:

Beitrag von s-valve »

Nein, funktioniert nicht. Es wird trotzdem die vorher eingestellte maximale Breite aufgezogen, wenn das Hauptwidget sichtbar wird.

Grüße
Antworten