2010-10-06 2 views
1

Sur un formulaire conçu avec Qt Designer, j'ai deux QGroupBox avec un tas de contrôles dans chacun d'eux. Les deux boîtes de groupe ont presque le même contenu (QLineEdits avec les étiquettes associées).Qt: Aligner les contrôles qui se trouvent dans des dispositions distinctes

Ce que je veux faire, cependant, est d'aligner les contrôles ensemble, comme s'ils faisaient partie de la même disposition de la grille. Mais comme ils sont dans des conteneurs séparés, ils ne peuvent pas partager la même disposition, et je ne veux pas leur donner une largeur fixe.

Existe-t-il un moyen de le faire dans Qt Designer? Sinon, y a-t-il un moyen de le faire dans le code?

Merci!

Répondre

3

Il n'existe aucun moyen de le faire dans Designer. Pour autant que je sache, Qt ne fournit pas non plus un bon moyen de le faire dans le code. Si vous le voulez vraiment, vous devrez probablement compter sur quelque chose d'un peu hacky.

Voici ma première idée: Remplacer resizeEvent() dans le widget qui contient les deux boîtes de groupe pour obtenir la taille préférée (via sizeHint() ou minimumSizeHint()) de toutes les étiquettes et définir la largeur fixe de tous les étiquettes à la plus grande largeur préférée.

Je vous encourage à vous demander si cela compte vraiment (est-ce que cela vaut le temps de développement?) Et d'examiner si vous pouvez éviter le problème entièrement avec un design d'interface utilisateur légèrement différent.

BTW, vous pouvez jeter un oeil à QFormLayout si vous ne l'avez pas déjà fait.

Questions connexes