IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PyQt Python Discussion :

[PyQt5] Transition entre plusieurs panneaux dans une même fenêtre


Sujet :

PyQt Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Santé
    Inscrit en
    Juillet 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Santé

    Informations forums :
    Inscription : Juillet 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [PyQt5] Transition entre plusieurs panneaux dans une même fenêtre
    Bonjour,

    J'utilise PyQt 5 pour le développement d'une application devant gérer des commandes de clients, elle possède un panneau avec formulaire pour l'ajout de clients et un autre pour voir la liste de clients. Afin de passer d'un panneau à un autre, j'ai pensé à cacher les widgets du panneau que je quitte et d'afficher ceux de celui vers lequel je me rends, j'ai aussi pensé à fermer (destroy ou deleteLater) des widgets dans certains cas. Est-ce la méthode à suivre ou y a-t-il une méthode plus habituelle et plus appropriée dans le domaine de programmation en GUI?

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    On peut faire à peu près tout ce qu'on veut dans ce domaine, mais ce que tu dis ne permet pas de savoir quelle est la meilleure méthode qu'on peut te proposer.

    Par exemple. Ce que tu appelles "panneau" est-ce une fenêtre de type QWidget? Et les 2 fenêtres dont tu parles sont-elle lancées par une fenêtre principale (par exemple de type QMainWindow)? Si oui, voici quelques possibilités:

    - Quand une fenêtre principale lance une fenêtre secondaire, il est possible de prévoir par connexion de signal que sa fermeture ultérieure renseigne la fenêtre principale. On peut donc questionner à tout moment la fenêtre principale pour savoir quelles sont les fenêtres secondaires ouvertes.

    - Par ailleurs, il n'est en général pas nécessaire de détruire une fenêtre secondaire: un clic sur la croix de la fenêtre ferme cette fenêtre, ce qui lancera en dernier sa méthode "closeEvent" qui pourra "faire le ménage" avant de fermer (ou même demander s'il faut vraiment la fermer et si "non", refuser sa fermeture!).

    - en lançant la fenêtre secondaire "ajout d'un client", rien n'empêche de fermer automatiquement (ou non) l'autre fenêtre secondaire.

    - à condition de permettre l'accès aux adresses des fenêtres par chacune d'entre elles, on peut permettre à chacune des fenêtres d'accéder aux informations des autres fenêtres ouvertes.

    - etc...

    Précise un peu mieux ce que tu souhaites faire.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Santé
    Inscrit en
    Juillet 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Santé

    Informations forums :
    Inscription : Juillet 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour tyrtamos,

    Merci pour ta réponse.

    Lorsque j'ai posé la question, je pensais à un programme se déroulant dans une seule et même fenêtre. Des boutons permettant d'aller d'une partie à une autre du programme. Par exemple, le programme démarre par un menu principal où il y a les boutons Ajouter un client, Liste des clients et Quitter. L'appui sur un bouton efface le menu principal et remplit la fenêtre des éléments de la partie souhaitée, ajout de client ou liste des clients. Dans chacune de ces parties, il y a un bouton retour au menu. Tout est donc censé se dérouler dans une seule et même fenêtre.

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Pour changer à la demande certaines parties d'une fenêtre, on peut à la rigueur utiliser hide (cacher) et show (afficher). Tant qu'à faire, s'il y a plusieurs widgets à afficher à chaque fois, on peut les mettre dans un même conteneur (un QFrame par exemple ou un QWidget) pour simplifier la gestion de l'affichage.

    Mais il y a une autre solution que j'utiliserais plus volontiers dans ce cas: un QTabWidget qui permettra de choisir ce qui doit être affiché en cliquant sur le bon onglet (plutôt que dans un menu).
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Santé
    Inscrit en
    Juillet 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Santé

    Informations forums :
    Inscription : Juillet 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ton avis.

Discussions similaires

  1. [2008R2] Calcul de durée entre plusieurs enregistrements dans une même table
    Par mikmik60 dans le forum Développement
    Réponses: 2
    Dernier message: 20/10/2014, 13h28
  2. Plusieurs GUI dans une même fenêtre
    Par z_tweety dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 14/05/2010, 11h17
  3. conflit entre plusieurs scripts dans une même page
    Par lebenou13 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 11/11/2009, 15h17
  4. [Requête] plusieurs champs dans une même table ayants la même source
    Par Christophe93250 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/04/2006, 16h18
  5. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo