Redimensionnement application Qt¶
Suite aux nombreux problèmes de redimensionnement d'une application durant un exercice, il a été conjointement décidé que :- la taille de la fenêtre peut être redimensionnée à la page d'accueil
- la taille de la fenêtre est bloquée durant un exercice
Il est possible alors de sortir de l'exercice, revenir à l'accueil, et redimensionner la fenêtre.
Le code qui va suivre vous présente une façon de faire qui fonctionne (testée sur le Mulot :p ).
Dans le MainWindow.cpp de votre application, à l'appel de votre exercice, faites ceci (exemple tiré du Mulot):
switch (numero) { case 1: { ExerciceSurvol *s = new ExerciceSurvol(m_abuleduaccueil); connect(s, SIGNAL(exerciceExited()), this, SLOT(exerciceExited())); exerciceEnCours = true; setFixedSize(this->width(), this->height()); // c'est ici qu'on interdit le redimensionnement } ....
La méthode setFixedSize() permet de bloquer le redimensionnement. La fenêtre peut toujours être déplacée.
Les paramètres this->width() et this->height() récupèrent respectivement la largeur et la hauteur de la fenêtre (ici la MainWindow).
Voila, la taille de votre application est désormais bloquée durant l'exercice.
Preuve que cela fonctionne, à l'exécution, le petit carré dans le coin supérieur haut (celui qui permet de maximiser la taille) a disparu.
Pour débloquer le redimensionnement, rien de plus simple :) !
Il suffit de rappeler la fonction setFixedSize() avec comme paramètre la macro QWIDGETSIZE_MAX.
En effet, dans Qt, QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX) est la taille maximale autorisée pour un objet QWidget.
void MainWindow::exerciceExited() { exerciceEnCours = false; setFixedSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)); // On autorise le redimensionnement show(); }
Voila, ceci devrait fonctionner dans vos futures applications.
Bon test !