2010-12-09 40 views
0

Ok, voici mon problème:qt mise en page non expansible?

J'ai une disposition verticale qui contient un QPlainTextEdit et une disposition horizontale (contenant 2 QPushButtons) sous la modification de texte.

La disposition verticale fait partie de l'interface graphique et est redimensionnée en fonction de la résolution de l'écran. Btw. C'est une application mobile, donc je n'ai pas beaucoup d'espace sur l'écran.

Les boutons-poussoirs ont du texte qui est défini dynamiquement, je ne sais pas depuis le début pour le coder manuellement.

Mon problème se produit lorsque le texte dans les boutons-poussoirs est grand, et toute ma disposition verticale est élargie pour s'adapter aux boutons.

Comment rendre la disposition verticale non-expansible? notez que cela est différent de "fixed" en raison des différentes résolutions d'écran. Je voudrais juste les clipser les boutons s'ils ne correspondent pas, mais garder la largeur de la disposition intacte.

Quoi qu'il en soit?

Répondre

2

Vous devez définir la largeur maximale pour les boutons, pas la disposition, qui ne fait que s'élargir pour s'adapter aux boutons plus larges. Consultez the docs on QPushButton et recherchez les fonctions héritées de QWidget appelées setMaximumSize ou setMaximumWidth.

+0

oui, mais la taille maximale attend toujours une taille fixe. seulement si je vérifie chaque repaint et que je mets la taille à layout.width/2 – ZolaKt

+1

Pourquoi ne pas redimensionner/réinitialiser la largeur maximum du bouton juste après que le texte change? Pas besoin de le faire à chaque repaint, juste quand le texte est modifié (vous ne pouvez pas vous connecter à un 'signal' pour cela et vous ne pouvez pas réimplémenter le' QPushButton :: setText() 'non virtuel, donc vous aurez le faire manuellement ...) – rubenvb

0

Vous pouvez toujours obtenir GetWidth() sur le bouton quand il s'agit d'une taille appropriée, puis définir la largeur maximale en utilisant cette valeur, car vous ne le savez pas habituellement. Choisissez une taille/valeur de texte par défaut appropriée et utilisez-la pour créer votre "dynamique" par défaut, car cela se passe sur des écrans de taille variable.