77 votes

Besoin d'aide pour comprendre les mécanismes de présentation de formulaire dans Qt

Qt a la fois souple et puissant de mise en page mécanisme de poignée de vue de l'application de bureau windows.

Mais il est tellement souple, qu'presque ne peut pas être compris, quand quelque chose va mal et nees le réglage de précision. Et si puissant, qui peut battre n'importe qui dans leur tente de submerger l'intervalle Qt de l'avis de la façon dont la forme devrait ressembler.

Donc, quelqu'un peut-il expliquer, ou de fournir des articles, ou de la source de Qt sur le positionnement des mécanismes?

Je suis en train de forcer le label, button et de la table, marquée par la fuite des caractères de soulignement dans leurs noms, être deux fois plus élevé que qtextbrowsers avoir verticalstretch = 1 ci-dessous. Comment puis-je gérer widget de hauteur correctement?

.l'interface utilisateur du fichier de ma forme sur google docs. De recherche '__' dans les noms, aperçu dans QtDesigner

142voto

Dr Deo Points 2042

Les mises en page sont en fait facile à comprendre "je pense" :)
Une explication simple de mise en page peut être trouvé dans l'intervalle qt livre "C++ programmation Gui avec QT 2ème édition"

Ce que vous devez être conscients de concernant les mises en page et leur taille des politiques

  • La plupart des Qt widgets ont une dimension politique. Cette dimension politique de indique au système le de le widget devrait s'étirer ou rétrécir. Son obtenu à partir de la classe QSizePolicy. Une taille de politique a la fois verticale et horizontale des composants.
  • La plupart des widgets ont également une taille de Soupçon. Cette taille de l'indice indique le système de widgets la taille désirée
  • QSizePolicy a un facteur d'étirement pour permettre à des widgets à croître à des taux différents

Je ne suis familier avec 4 taille de politiques

  • taille fixe de la politique - de La taille du widget est fixe et il ne peut pas être étiré. Il reste à sa taille soupçon.
  • taille minimale de la politique - La taille de l'indice est le plus possible la taille du widget, mais il PEUT ENCORE grandir si nécessaire.
  • La taille préférée des politiques le widget peut rétrécir ou grandir plus grand que la taille de l'indicateur.
  • l'expansion de la taille de la politique - le widget peut rétrécir ou grandir plus grand que la taille de l'astuce :)

Vous désirez peut-être demander,

Quelle est la différence entre les privilégiés et de l'expansion?
réponse: Imaginez un formulaire avec 2 widgets, un privilégié et un autre avec de l'expansion, Puis tout espace supplémentaire sera accordée pour le widget de l'expansion de la politique. Le widget avec le préféré de la politique restera à sa taille soupçon.

Je recommande (AVERTISSEMENT: ne suis pas un expert :)) vous acheter et de lire par le biais de "C++ programmation Gui avec QT 2e édition". Je suis actuellement en train de le lire et de sa faire beaucoup de sens. Regardez les images et de voir si elles ont un sens.

Expliquer la taille des politiques
Size policy explained

Un exemple simple
C'est un dialogue simple avec 2 boutons dont la taille horizontale et verticale des politiques sont présentés comme le sont l'horizontale et à la verticale extensible.

example

Voici l'aperçu lors de sa plus petite taille. alt text

Voici un autre aperçu en grand format alt text

[ÉDITÉ: //ajouté à la taille soupçon exemple]

POURQUOI DEVRIEZ-VOUS VOUS SOUCIEZ DE SIZEHINT
Vous pouvez voir que chaque widget a un sizeHint qui est essentiel, car QT du système de mise en page respecte toujours les sizeHint. C'est seulement un problème si la taille par défaut du widget n'est pas exactement ce que vous voulez. La seule façon de contourner ce problème est d'étendre (sous-classe) le widget et ré-écrire son sizeHint() de la fonction membre. Un exemple vaut 1000 mots. Pour économiser de l'espace, voir mon blog où il y a un exemple de projet.

-3voto

Shinnok Points 2858

Vous pouvez utiliser QT Feuilles de Style pour contrôler la hauteur des widgets et d'autres propriétés dans un facile de manière personnalisée.

http://doc.trolltech.com/4.7/stylesheet.html

Comme pour les modèles dont vous avez besoin de les utiliser à bon escient et fortement couplé avec des entretoises afin de rendre le comportement des widgets exactement de la façon dont vous le souhaitez.

http://doc.qt.nokia.com/4.7-snapshot/designer-layouts.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X