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 :

ouvrir un autre script python lors de la fermeture du premier


Sujet :

PyQt Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Demandeur d'emploi
    Inscrit en
    Octobre 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Demandeur d'emploi

    Informations forums :
    Inscription : Octobre 2018
    Messages : 22
    Points : 20
    Points
    20
    Par défaut ouvrir un autre script python lors de la fermeture du premier
    bonjour, j'ai créer un fichier python pyqt5 avec class.
    ma question est :
    est il possible lors ce que l'on clic sur la croix rouge de la première fenêtre pyqt5 quelle ce ferme (lors du exit(app.exec_())) ET SURTOUT qu'elle ouvre un autre fichier python

    voici la fin de mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if __name__ == "__main__":
        app = QApplication(argv)
        SpeedDial = QWidget()
        ui = Ui_SpeedDial()
        ui.setupUi(SpeedDial)
        SpeedDial.show()
        exit(app.exec_())
    Merci d'avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut
    Citation Envoyé par Yanss49 Voir le message
    est il possible lors ce que l'on clic sur la croix rouge de la première fenêtre pyqt5 quelle ce ferme (lors du exit(app.exec_())) ET SURTOUT qu'elle ouvre un autre fichier python
    Techniquement, c'est possible.
    Reste à régler quelques détails pour le programmer... pour autant qu'il ne soit pas plus judicieux d'utiliser des modules (i.e. clarifier un peu le besoin avant de partir sur une idée qui s'avèrera mauvaise en pratique).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 473
    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 473
    Points : 9 270
    Points
    9 270
    Billets dans le blog
    6
    Par défaut
    Bonjour

    Quand on ferme une fenêtre, la méthode prédéfinie "closeEvent" de la fenêtre est exécutée. Il faut la surcharger pour indiquer ce qui doit être fait dans ce cas. Il est ainsi possible de tester quelque chose pour refuser la fermeture, ou sauvegarder, par exemple, des données avant cette fermeture. Ici, on devrait pouvoir lancer un autre programme, et accepter la fermeture de la fenêtre, mais ce lancement doit être fait de telle sorte que ce programme ne se ferme lui-même à la fermeture de la fenêtre.
    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

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 717
    Points : 31 028
    Points
    31 028
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Comme le dit tyrtamos, il te faut écrire ton propre closeEvent() qui détecte la fermeture de ton appli et peut alors agir en conséquence. Un exemple ici.

    Mais ensuite il te faut l'instruction d'appel du second programme. Tu peux utiliser pour ça le module subprocess.

    Maintenant par expérience, ce genre de comportement ne se fait jamais. Généralement on laisse les programmes indépendants l'un de l'autre et on les place à suivre dans un outil de programmation système, typiquement un shell sous Unix, un .bat (ou .ps sous Windows). Ainsi c'est l'outil qui gère l'ordonnancement (quand le premier programme se termine il lance alors le second).
    Donc peut-être te demander ce qui t'amène à avoir besoin de ce comportement? Est-ce un cas de problème XY ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par tyrtamos Voir le message
    Quand on ferme une fenêtre, la méthode prédéfinie "closeEvent" de la fenêtre est exécutée.
    Lorsqu'on ferme la fenetre principale on ferme toutes les fenêtres et si quitOnLastWindowClosed est vrai (ce qui est le défaut)on sort de l'appel à exec_.
    Dit autrement, avec ce code modifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if __name__ == "__main__":
        app = QApplication(argv)
        SpeedDial = QWidget()
        ui = Ui_SpeedDial()
        ui.setupUi(SpeedDial)
        SpeedDial.show()
        status = app.exec_()
        exit(status)
    on arrive ligne 8... et comme c'est pour remplacer l'application courante, çà devrait suffire.
    note: plus compliqué fonctionne aussi!

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/10/2013, 12h31
  2. Ouvrir explorateur Windows dans script python pour Blender
    Par ero91 dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 27/03/2013, 13h36
  3. Intégrer du scripting Python dans un autre programme
    Par ProgVal dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 03/07/2010, 13h52
  4. Réponses: 1
    Dernier message: 20/04/2010, 13h58
  5. Réponses: 1
    Dernier message: 12/08/2009, 16h25

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