2017-10-12 8 views
0

Le code ci-dessous redimensionne automatiquement le champ QLineEdit selon les besoins (nouvelle largeur/hauteur basée sur du texte dynamique). Maintenant, afin de faire correspondre le QLineEdit redimensionné au widget conteneur, je fais adjustsize() sur le widget conteneur.QWidget (un qlineedit) redimensionner automatiquement le contenu

éléments pertinents dans mon code:

void theContainer::resize_to_content(QString text) { 
{ 
// ... 
lineedit.setFixedSize(calcualtedWidth, calculatedHigh); 
theContainer::adjustSize(); 
} 

le problème rencontré est que même si les deux redimensionnements du QLineEdit et le travail widget parent (dans une certaine mesure), la limitation dans ce cas est que le QLineEdit, après redimensionnement, chevauche les widgets adjacents! Il semble que ce widget conteneur - quand il s'ajuste - semble ignorer les autres enfants non manipulés ... Existe-t-il un moyen systématique d'empêcher un tel chevauchement ?? pas seulement une solution de contournement que je veux dire.

- Widgets avant ajustements

enter image description here

- Widgets après ajustements de changement de texte et taille:

enter image description here

Répondre

1

Je suis assez sûr en utilisant les classes Qt fournit spécifiquement pour la mise en page la gestion aidera.

Voir Qt documentation on layout

Si elle ne, je pense que vous pouvez redimensionner la fenêtre entière pour obtenir plus d'espace au lieu de seulement le widget parent.

+0

Notez que AjustSize() le fait réellement (redimensionner la fenêtre entière). –