2010-09-19 6 views
0

Tout comme le titre dit, quand je redimensionne la fenêtre, si je l'élargis, je veux que la taille de la fenêtre redimensionner proportionnelle pour faire de la fenêtre a le même rapport. Je viens de faire la logique dans paintEvent, mais ça ne marche pas bien, est-ce que certains gars ont une solution?Je veux qt fenêtre pour redimensionner proportionnelle

Je ne pense pas faire le redimensionnement dans resizeEvent est une excellente façon, le meilleur résultat est que vacillante de la fenêtre, mais je veux la façon couramment

Répondre

1

Ne pas le faire dans paintEvent mais void QWidget::resizeEvent (QResizeEvent * event). Ensuite, vous pouvez comparer event->size() et event->oldsize() pour voir quelle dimension a été modifiée, puis redimensionner pour faire correspondre l'autre dimension à celle qui a été modifiée.

EDIT: Notez que lorsque vous redimensionnez la fenêtre à l'intérieur de la fonction resizeEvent, vous allez créer un autre événement de redimensionnement. Donc, assurez-vous de ne redimensionner que s'il y a eu un changement qui a amené la fenêtre à un mauvais format, sinon vous allez créer une récursion infinie à la fonction et un débordement de pile. Je viens de le faire dans resizeEvent.

+0

Et je pense qu'une partie du code a des bugs.And bas sur votre réponse, je pense que ma pensée était applicable, merci! Je vais essayer à nouveau – jiluo

Questions connexes