Layout neu ausrichten bei Widget.setHidden()

Alles rund um die Programmierung mit Qt
Antworten
d.albuschat
Beiträge: 3
Registriert: 20. Juni 2006 22:10
Kontaktdaten:

Layout neu ausrichten bei Widget.setHidden()

Beitrag von d.albuschat »

Hallo,

ich habe im Designer ein Form mit Grid Layout erstellt, in dem ich in
der erste Zeile Checkboxen habe und in der zweiten andere Widgets (Time Edits).
Unter und über dem Grid sind weitere Widgets. Das sieht ungefähr so aus:
.------------------------.
| Widget | Widget |
| Checkbox | Checkbox |
| Date Edit | Date Edit |
| Widget | Widget |
`------------------------´
(stellt euch das Ganze jetzt in einer Festbreitenschrift vor.)
Ich möchte nun die Zeile mit den Date Edits ausblenden können. Und zwar so, dass dann das gesamte Form kleiner wird. Momentan strecken sich die restlichen Widgets dann über den frei bleibenden Platz, das sieht aber unschön aus.

Ich weiß nicht, wie ich dem Form (das ich später per setupUi() auf einen QDialog projeziere) sage, dass es immer so klein wie möglich sein soll.

Danke schonmal für eure Hilfe.

MfG,
Daniel Albuschat
Zuletzt geändert von d.albuschat am 21. Juni 2006 17:57, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Dann passt was mit den Layouts nicht. Ich habe einen ähnlichen Dialog, der sich auch in der Größe anpasst, je nach dem was eingeblendet ist und was nicht. Mit deinen wenigen Angaben kann man nicht sagen, was Du anders gemacht hast. Also, Bild vom Designer oder Code vom ui.
d.albuschat
Beiträge: 3
Registriert: 20. Juni 2006 22:10
Kontaktdaten:

Beitrag von d.albuschat »

Ok, ich habe einen Testcase erstellt.
Siehe Anhang ans Posting.
Die Datei kann im Designer geöffnet werden und das fehlerhafte
Resultat sieht man schon, wenn man Strg+R drückt (Vorschau)
und dann auf die Checkbox klickt.
Dateianhänge
TestCase.ui
(1.85 KiB) 84-mal heruntergeladen
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ich bin etwas ratlos, bekomme es nicht hin. Ich habe einen Dialog, bei dem werden Teile vor dem show() ausgeblendet und dann ist er größer oder kleiner, je nach dem was sichtbar ist. Ich habe auch mehrere Dialoge, die ihre Größe dynamisch ändern, wenn ich z.B. während der Laufzeit die Sprache umschalte und sich dadurch Textlängen ändern. Frag mich nicht was da anders ist :-)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Die eine Möglichkeit wäre mit Spacern zu arbeiten, dann kann man die Position festlegen, an denen die Elemente verschoben werden.

Die andere Möglichkeit wäre einen Slot aufzurufen, der folgendes macht:

Code: Alles auswählen

resize(sizeHint())
(ungetestet)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

upsala hat geschrieben:

Code: Alles auswählen

resize(sizeHint())
Sowas habe ich zu Qt3-Zeiten mal gemacht, damit ein Dialog so klein wie möglich wurde, aber mit Qt4 funktioniert es so nicht. Genauer, beim ersten Klick wurde nur die Breite angepasst, beim zweiten Klick war das Label ja wieder da :-) Hab es nicht weiter verfolgt.
Antworten