PyQt: comment gérer le redimensionnement automatique des widgets lors de leurs changements de contenu

Je vais avoir quelques problèmes avec la taille de qt4 widgets lorsque leur contenu est modifié.

Je vais illustrer mes problèmes avec deux scénarios simples:

Scénario 1:

J'ai un QLineEdit widget. Parfois, quand je suis en changer le contenu à l'aide de QLineEdit.setText(), une ligne de chaîne ne rentre pas dans le widget à sa taille actuelle plus. Je dois sélectionner le widget et utilisez les touches fléchées pour faire défiler la chaîne dans les deux directions afin de tout voir.

Scénario 2:

J'ai un QTextEdit widget. Parfois, quand je suis en changer le contenu à l'aide de QTextEdit.setHtml(), le rendu du contenu HTML ne rentre pas dans le widget à sa taille actuelle plus. Le widget affiche horizontal et/ou vertical des barres de défilement et je peux les utiliser pour faire défiler le contenu HTML.

Ce que je veux dans de tels scénarios est d'avoir une certaine logique qui décide si, après une modification du contenu, le nouveau contenu ne rentre pas plus dans le widget et augmenter automatiquement la taille de widget, donc tout adaptée.

Comment ces scénarios sont-elles traitées?
Je suis l'aide de PyQt4.

Edit: après lecture à la fois le commentaire et la première réponse (qui mentionne la saisie du contenu dans le widget), je suis allé sur la question une fois de plus. J'ai été désagréablement surpris de découvrir une horrible faute de frappe. Je voulais dire QTextBrowser quand j'ai écrit QTextEdit, mes excuses pour vous induire en erreur. C'est: j'ai un widget qui affiche le code HTML le code que je vais changer et je voudrais le widget de croître suffisamment pour afficher tout ce que sans avoir des barres de défilement.

Comme pour QLineEdit au lieu de QLabel - je suis allé pour QLineEdit depuis que je l'ai remarqué, je ne peux pas sélectionner le texte à partir d'un QLabel avec la souris pour copier. Avec QLineEdit c'est possible.

Je voulais juste que vous savez que votre question n'a pas été oublié... j'ai pensé à ce sujet sur et en dehors de la dernière journée, mais je ne peux pas penser à une façon simple de faire ce que vous demandez. C'est tout simplement pas ce que les articles que vous utilisez sont conçus pour. Ils sont d'entrée de widgets, et conçu pour permettre à davantage de données à saisir que ce qui peut s'adapter confortablement sur l'écran. Si vous voulez vraiment redimensionnement pour les éléments en cours, essayez d'étendre QLabels à l'intérieur d'un modèle.

OriginalL'auteur | 2009-07-20