2011-05-23 4 views
4

Mon problème est probablement très simple, mais je ne sais pas comment le résoudre. Donc, j'ai plusieurs widgets en disposition verticale. Certains d'entre eux dans un moment devraient être invisibles. Je suppose qu'à ce moment le contrôle qui a une politique verticale en expansion devrait augmenter sa hauteur mais cela n'arrive jamais. Pourquoi? Comment forcer pour changer la taille? Jusqu'à présent, il n'y a qu'une seule façon de le faire - changer un peu la taille de la fenêtre manuellement et seulement après que le widget change sa hauteur.Comment faire pour qu'un widget Qt change sa taille?

Répondre

3

Lorsque vous créez un widget invisible (c'est-à-dire appelez hide), supprimez-le également de la mise en page (voir removeWidget). De cette façon, tous les autres widgets seront automatiquement redimensionnés pour utiliser l'espace supplémentaire. Puisque vous masquez uniquement le widget, son espace est toujours réservé dans la disposition verticale. Utilisez l'insertWidget pour conserver l'ordre de disposition lors de la transition d'un widget caché dans la vue. Sinon, addWidget le placerait toujours en bas. Cette approche devrait être moins complexe que la gestion manuelle des tailles.

+0

J'ai essayé de cette façon, mais cela ne fonctionne toujours pas. Le widget disparaît mais un autre widget ne s'étire pas. :(Merci quand même – mimic

1

Essayez d'appeler adjustSize() sur le parent de la mise en page.

+0

Essayé, ne fonctionne pas Merci de toute façon – mimic

0

Avez-vous essayé de définir l'étirement sur 1 pour le widget que vous voulez agrandir lorsque d'autres sont cachés?

QBoxLayout::addWidget(my_widget, 1); 

Lorsque ce widget est ajouté avec un tronçon de 1 et les autres widgets sans étirement, ce widget se dilatent à l'espace disponible. Peut-être que ça va faire l'affaire.

+0

Désolé, mais je n'ajoute pas ce widget Le widget qui est dans la mise en page a toujours une politique d'expansion, mais il ne se développe pas lorsque j'en retire un autre (avec politique préférée) .Merci de toute façon – mimic

Questions connexes