Hi Community,
wie kann ich ein Layout in einem Widget genau im Mittelpunkt des Widgets halten, sprich, auch nach einem Resize bleibt das Layout im Mittelpunkt.
Ich habe es bisher nur über zwei verschachtelte vbox bzw. hbox Layouts geschafft. Gibt es da eine schönere Variante?
Grüße,
anogayales
Layout in einem Widget zentrieren
Es fällt mir schwer, mir unter diesem Beitrag etwas vorzustellen. Kannst Du Dein Problem vielleicht einmal anhand eines Beispiels erläutern?
-
- User
- Beiträge: 456
- Registriert: Mittwoch 15. April 2009, 14:11
Hier ein Beispiel:
Groß:
Klein:
Das weiße Kästchen ist das Widget und das rote Kästchen ist das innere Layout. Das innere Layout soll immer im Mittelpunkt des weißten Kästchens bleiben. Sprich: Wenn das Widget verkleinert bzw. vergrößert wird soll sich das rote Kästchen automatisch ausrichten.
Grüße,
anogayales
Groß:
Klein:
Das weiße Kästchen ist das Widget und das rote Kästchen ist das innere Layout. Das innere Layout soll immer im Mittelpunkt des weißten Kästchens bleiben. Sprich: Wenn das Widget verkleinert bzw. vergrößert wird soll sich das rote Kästchen automatisch ausrichten.
Grüße,
anogayales
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wie wäre es mit 4 Spacern drum herum? An jede "Kante" des inneren Widgest eben je zwei vertikale nach oben und unten, sowie zwei horizontale nach rechts und links. Damit sollte das klappen.
http://paste.pocoo.org/show/230562/
http://paste.pocoo.org/show/230562/
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- User
- Beiträge: 456
- Registriert: Mittwoch 15. April 2009, 14:11
Wenn man das ganze als Code implementieren müsste, müsste man ja auch ein VBOX und ein HBOX Layout ineinander verschachtel, oder sehe ich das was falsch?
Schaff am besten mit dem Designer, zieh dein ZentrumsWidget drauf, mach recht, links, oben und unten einen Spacer hin, markier alle (schau das die Elemente in etwa gleich groß sind) und weise den ganzen Elementen ein QGridLayout zu, dann dem Widget noch ein Layout und dann sollte es tun. Über die von dir genannte Verschachtelung geht es auch aber auch da brauchst Du Spacer sonst dehnt sich dein ZentrumsWidget bis an den Rand aus.
Geht natürlich auch ohne Designer, mit nem GridLayout ...
Gruß
Geht natürlich auch ohne Designer, mit nem GridLayout ...
Gruß
Gibt es in Qt keine Flags, wie in wxPython, z.B. wx.CENTER etc.?
the more they change the more they stay the same
-
- User
- Beiträge: 456
- Registriert: Mittwoch 15. April 2009, 14:11
Es gibt sowas, leider hab ich noch nicht wirklich rausgefunden, was die bewirken
http://doc.qt.nokia.com/4.6/qt.html#AlignmentFlag-enum
Geht anscheinend nur mit Text -.-
http://doc.qt.nokia.com/4.6/qt.html#AlignmentFlag-enum
Geht anscheinend nur mit Text -.-
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
ichisich hat es ja schon geschrieben! Nein. Musst Du nicht. Öffne doch die Datei im Designer und schau es Dir an - aus diesem Grunde habe ich sie hier gepostet; erschien mir sinniger als ein Screenshot vom Designer.anogayales hat geschrieben:Wenn man das ganze als Code implementieren müsste, müsste man ja auch ein VBOX und ein HBOX Layout ineinander verschachtel, oder sehe ich das was falsch?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert