2010-02-19 9 views
0

Je travaille avec plusieurs widgets mais la solution ne sortira pas. Ce que j'ai est une série de boutons dans la série QHBoxLayouts. Certains boutons sont masqués par défaut, mais ils apparaîtront si nécessaire. Pour résoudre les problèmes d'espace, tous les boutons ont une taille minimale et maximale afin qu'ils soient toujours bien emballés. J'ai aussi un QTextEdit, visible par défaut, qui est dans un QVBoxLayout avec le QHBoxLayout qui détiennent les boutonsPyQt4: Masquer le widget et redimensionner la fenêtre

Le problème est le suivant: Quand je cache le QTextEdit et montrer les autres boutons, la fenêtre ne sera pas redimensionner. Après une recherche, j'ai trouvé que l'utilisation de self.ui.layout().setSizeConstraint(QtGui.QLayout.SetFixedSize) ferait l'affaire, mais le problème est qu'il prend la taille maximale de tous les widgets, donc je termine une énorme fenêtre. Faire self.ui.layout().setSizeConstraint(QtGui.QLayout.SetMinAndMaxSize) ne sera pas redimensionner la fenêtre

je l'ai déjà essayé d'utiliser self.ui.resize(0,0), et lorsque vous faites un self.ui.layout().update() je suis arrivé Faux (que je trouve étrange, http://doc.trolltech.com/4.6/qlayout.html#activate), et aussi essayé de passer outre sizeHint() mais il continue d'utiliser la taille maximale pour tous widgets.

Y at-il un moyen de redimensionner la fenêtre et en prenant soin de la taille min et max d'un widget?

Merci à l'avance

+0

Pouvez-vous poster le code, ou au moins un extrait? Je pense qu'il serait plus facile de comprendre et d'essayer de diagnostiquer ce problème si je pouvais le voir en action. – swanson

+0

Puisque j'utilise le module uic, et que le code source original a de nombreuses dépendances, je poste le code de la fenêtre http://pastebin.com/f1544ffdb (qui est très petit) et le fichier uic http: // pastebin.com/f65684099. Aussi quelques captures d'écran http://www.flickr.com/photos/[email protected]/sets/72157623339593841/ – masterLoki

Répondre

3

La réponse était assez boiteux ... Il fallait juste changer le QVBoxLayout pour un QGridLayout et utiliser self.ui.layout().setSizeConstraint(QtGui.QLayout.SetFixedSize)

+1

Vous pouvez accepter votre réponse, afin que votre question n'apparaisse pas dans la liste des "questions sans réponse". –

Questions connexes