Le poste de contrôle (PC) / La fenêtre principale /
Persistance de toutes les géométries

Géométrie de la fenêtre principale et des dockables


Avant-propos

Exécution retardée de fonctions avec QTimer

Astuce : Ajoutez le raccourci-clavier Alt+D dans Pycharm, pour éditer fen_mere.ui dans Qt Designer. Voir ci-après :
  • Ctrl+Alt+S pour entrer dans les settings.
  • Tools > External tools
  • Ajoutez un 'tool' (un outil) en cliquant sur le signe plus +, compléter les champs :
  • Ajoutez un raccourci-clavier :
    • Toujours dans les settings > Keymap > External Tools > External Tools
      • Clic droit sur Designer > Add Keyboard Shortcut
      • Tapez Alt+D
      • Validez
  • Utilisation :
    • Cliquez sur le fichier fen_mere.ui pour le sélectionner.
    • Tapez Alt+D => Qt Designer s'ouvre, vous pouvez éditer.
A faire : donnez un nom aux dockables.
Celui de gauche : Noeuds, celui de droite : Paramètres.


Description

Nous avons traité la persistance de la géométrie de la fenêtre principale.

Oui mais... elle contient 2 dockables qui ont également leur géométrie.

De plus, les dockables ont 2 paramètres supplémentaires :

Avant de poursuivre, nous allons coder les 2 boutons  et 
En effet il faut pouvoir rouvrir un dockable qui a été fermé par sa petite croix.
 

TDD : Vous allez coder dans la classe UiMain pour satisfaire aux tests.
  • Le but est le suivant :
    • Modifiez manuellement l'état des dockables : visible ou invisible, attaché ou détaché.
    • Modifiez leur géométrie :
      • position, largeur, hauteur lorsqu'ils sont détachés.
      • Largeur et empilement seulement lorsqu'ils sont attachés à gauche ou à droite.
    • Provoquez une fermeture 'normale' ou 'sauvage'.
    • Relancez la fenêtre  :
      • Vous devez tout retrouver dans le même état que lors de la fermeture : fenêtre + dockables.
         

 


2 tests ont été ajoutés :


Coder de manière itérative jusqu'à satisfaire aux tests. Bon coding et bon courage !

Snippets

Essayez de résoudre cette fonctionnalité par vous-même.
Consultez les réponses (snippets) seulement si vous n'avez pas trop de temps.

Bonjour les codeurs !