2012-03-27 9 views
6

Ich versuche, eine Reihe von Schaltflächen so zu platzieren, dass sie unten rechts auf dem Bildschirm verankert sind. Mein Problem ist, dass, wenn ich die Größe des Bildschirms ändere, die Schaltflächen nicht unten rechts verankert sind, sondern an ihrer aktuellen Position bleiben.QT - Schaltflächen unten rechts platzieren

Ich habe zwei Drucktasten in einem horizontalen Layout platziert. Ich habe dieses Layout dann in ein Rasterlayout platziert, das einen horizontalen und einen vertikalen Abstandhalter enthält. Ich habe die layoutSize-Eigenschaft Rasterlayout auf SetMaximumSize geändert.

Was mache ich falsch, damit ich meine Tasten rechts unten verankern kann?

enter image description here

Antwort

5

Sie haben fast alles genau hier, aber Sie haben wahrscheinlich etwas übersehen, das wirklich leicht zu übersehen ist, wenn Sie Qt Designer zum ersten Mal benutzen.

Ihr Rasterlayout befindet sich in Ihrem Widget mit einer festen Größe und Position. Es muss auch von einem Layout verwaltet werden. Wenn Sie sich oben rechts im Objektinspektor (der Ihre Hierarchie enthält) ansehen, werden Sie wahrscheinlich Ihr Top-Level-Widget mit einem roten Symbol sehen. Dies zeigt an, dass es kein Layout enthält. Sie haben zwei Möglichkeiten, dies zu beheben:

  1. Lassen Sie Ihr vorhandenes Rasterlayout in einem anderen Hauptlayout (wie einem vertikalen Layout) platzieren. Sie würden einfach mit der rechten Maustaste auf Ihr Top-Level-Widget im Objektinspektor klicken -> Layout -> [Wählen Sie einen Hauptlayout-Typ].
  2. Lassen Sie Ihr Raster zum Hauptlayout werden. Um dies zu tun, müssten Sie das Rasterlayout entfernen und Ihre untergeordneten Elemente genau so anordnen, wie Sie sie in diesem Bild haben. Folgen Sie dann der vorherigen Option, klicken Sie mit der rechten Maustaste auf das oberste Widget (oder den leeren Hintergrund) und wählen Sie Layout -> Raster. Dadurch werden Ihre Widgets bei optimaler visueller Anpassung in ein Grid eingefügt (das Sie dann bei Bedarf korrigieren können), und Ihr Raster ist das oberste Layout.
+0

Großartig. Vielen Dank :) – Jon

1

Das Raster-Layout wird andere Widgets ziemlich schwer machen platzieren. Versuchen Sie dies stattdessen:

  1. Fügen Sie (von links nach rechts) horizontalen Abstandhalter und die zwei Tasten hinzu.
  2. Multiselect sie alle.
  3. Wählen Sie "Horizontal ausrichten" (Strg-H) von der oberen Symbolleiste des Qt-Designers (oder Qt-Creators) aus (nicht von der Widget-Box auf der linken Seite!).
  4. Fügen Sie einen vertikalen Abstandhalter über den vorherigen Widgets hinzu.
  5. Wählen Sie das Hauptfenster aus, indem Sie darauf klicken (keines der hinzugefügten Widgets ist jetzt ausgewählt).
  6. Wählen Sie "Vertikal ablegen" (Strg-L) aus der oberen Symbolleiste.
  7. Fertig.
+2

Ich wette, ich könnte es in 6 Schritten tun! :-P – jdi

+1

Ich habe sogar die ??? und Gewinnschritte. –

+0

Wenn ich einen siebten Schritt brennen müsste, würde ich es einfach ändern zu: "7. Mach ein Sandwich". (+1 für eine SouthPark-Referenz auch) – jdi

0

Es scheint, dass Sie es richtig machen. Hab nur vergessen, ein Layout auf dein zentrales Widget anzuwenden, oder? Das Grid-Layout sollte in Ihrem zentralen Widget angeordnet sein. Der bequemere Weg ist, das Raster-Layout-Widget zu entfernen und das zentrale Widget in einem Raster auszulegen ;-)

Verwandte Themen