J'utilise la fonction sympa de QMessageBox pour afficher un texte détaillé à l'utilisateur. Cependant, la fenêtre après expansion est encore assez petite, et on essaie immédiatement de redimensionner la fenêtre afin que plus de détails soient visibles. Même après avoir défini ce que je pense être les paramètres appropriés, il ne permettra pas le redimensionnement.Comment autoriser le redimensionnement de QMessageBox dans PyQt4
Voici l'extrait pertinent du Code PyQt4:
mb = QMessageBox()
mb.setText("Results written to '%s'" % filename)
mb.setDetailedText(str(myData))
mb.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
mb.setSizeGripEnabled(True)
Suis-je manque une étape et/ou est-ce possible?
Voulez-vous dire que lorsque le QMessageBox est affiché, il est pas assez grand pour afficher votre contenu (par exemple, les choses se coupent)? –
Désolé, je n'étais pas clair. Je voulais dire que le texte détaillé est limité à une * petite * zone de texte (avec des barres de défilement). Visible, mais pas agréable du point de vue de l'utilisateur. Si le 'QMessageBox' pourrait juste être redimensionné manuellement comme l'utilisateur le souhaite, cela améliorerait considérablement l'expérience globale. Même avec les appels 'setSizePolicy()' et 'setSizeGripEnabled()', il n'est toujours pas possible de redimensionner la fenêtre. – metasim
Avez-vous essayé la politique de taille MinimumExpanding? Au-delà de cela, vérifiez pour voir à quel paramètre maximumSize est défini. Vous devrez peut-être sous-classer QMessageBox et ré-implémenter sizeHint() pour retourner ce que vous voulez. J'ai toujours trouvé qu'il y avait un peu de vaudou à implémenter des widgets de haut niveau pour se redimensionner correctement en fonction de leur contenu. L'autre chose que vous pouvez essayer est de définir la contrainte de taille de la disposition: 'mb.layout() -> setSizeConstraint (QLayout :: SetMaximumSize)' (Ah, c'est C++ - pas familier avec la syntaxe python) –