Frage

Qt Hat einen flexiblen und leistungsstarken Layout -Mechanismus, um die Ansicht der Fenster der Desktop -Anwendung zu verarbeiten.

Aber es ist so flexibel, dass es fast nicht verstanden werden kann, wenn etwas schief geht und eine Feinabstimmung braucht. Und so mächtig, dass es jeden in seinen Versuchen schlagen kann, die Meinung von QT zu überwältigen, wie Form aussehen sollte.

Kann jemand also Artikel erklären oder Artikel oder Quelle der Positionierungsmechanismen von QT bereitstellen?

Ich versuche das zu erzwingen QLabel, QPushButton und QTableView, gekennzeichnet durch hintere Unterstriche in ihren Namen, zweimal höher sein als QTextBrowser haben verticalStretch = 1 unter. Wie kann ich die Höhe von Widget richtig umgehen?

.Ui Datei meines Formulars in Google Docs. Suchen Sie in Namen '____', Vorschau in QtDesigner

War es hilfreich?

Lösung

Layouts sind tatsächlich leicht zu verstehen "Ich denke" :) :)
Eine einfache Erklärung von Layouts finden Sie im QT -Buch. "C ++ GUI -Programmierung mit QT 2. Ausgabe"

Was Sie in Bezug auf Layouts und ihre Größenrichtlinien bewusst sein sollten

  • Die meisten QT -Widgets haben eine Größenrichtlinie. Diese Größenrichtlinie zeigt dem System an, wie sich das Widget dehnen oder schrumpfen soll. Es hat von der Klasse QSizepolicy. Eine Größenpolitik hat sowohl vertikale als auch horizontale Komponenten.
  • Die meisten Widgets haben auch einen Hinweis. Dieser Größen Hinweis sagt dem System, dass eine Widgets die Größe bevorzugt
  • QSizepolicy hat einen Dehnungsfaktor, damit Widgets mit unterschiedlichen Raten wachsen können

Ich bin nur mit 4 Größenrichtlinien vertraut

  • Richtlinien für feste Größen - Die Größe des Widgets ist festgelegt und kann nicht gestreckt werden. Es bleibt bei seiner Größe Hinweis.
  • Mindestgrößenpolitik - Der Größenhinweis ist die kleinstmögliche Größe des Widgets, kann jedoch bei Bedarf immer noch größer werden.
  • Vorzugsgrößenpolitik - Das Widget kann schrumpfen oder größer werden als seine Größe.
  • Expandierende Größenpolitik - Das Widget kann schrumpfen oder größer werden als seine Größe :)

Vielleicht möchten Sie fragen,

Was ist der Unterschied zwischen Vorzug und Erweiterung?
Antworten: Stellen Sie sich ein Formular mit 2 Widgets vor, eine mit bevorzugter und eine mit Erweiterung, dann wird dem Widget mit der expandierenden Richtlinie ein zusätzlicher Platz gegeben. Das Widget mit der bevorzugten Richtlinie bleibt in seiner Größe Hinweis.

Ich empfehle (Warnung: bin kein Experte :)) Sie kaufen und lesen durch "C ++ GUI -Programmierung mit QT 2. Ausgabe"Ich lese es gerade und es ist viel Sinn. Sehen Sie sich die Bilder an und sehen Sie, ob sie einen Sinn ergeben.

Erklären von Größenrichtlinien
Size policy explained

Ein einfaches Beispiel
Dies ist ein einfacher Dialog mit 2 Schaltflächen, deren horizontale und vertikale Größenrichtlinien ebenso wie die horizontale und vertikale Dehnung gezeigt werden.

example

Hier ist die Vorschau auf die kleinste Größe. alt text

Hier ist eine weitere Vorschau mit größerer Größe alt text

Bearbeitet: // grize Hinweis Beispiel] Beispiel

Warum sollten Sie sich für sizeHint interessieren?
Sie können sehen, dass jedes Widget eine Größe hat, was von entscheidender Bedeutung ist, da das Layoutsystem von QT die Größe immer respektiert. Dies ist nur ein Problem, wenn die Standardgröße des Widgets nicht genau das ist, was Sie wollen. Der einzige Weg um dieses Problem besteht darin, die Widget -Member -Funktion (Unterklasse) zu erweitern und neu zu implementieren. Ein Beispiel ist 1000 Wörter wert. Um Platz zu sparen, lesen Sie meinen Blog, in dem es ein Beispielprojekt gibt.

Andere Tipps

Sie können QT -Style -Blätter verwenden, um die Höhe der Widgets und andere Eigenschaften auf einfache Weise zu steuern.

http://doc.qt.io/archives/qt-4.7/stylesheet.html

Was die Layouts betrifft, müssen Sie sie mit Bedacht und stark mit Abstandshaltern zusammenhängen, damit sich die Widgets genau so verhalten, wie Sie es möchten.

http://doc.qt.io/archives/qt-4.7/designer-layouts.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top