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] Comment restart code


Sujet :

PyQt Python

  1. #1
    Membre du Club
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Points : 65
    Points
    65
    Par défaut [PyQt5] Comment restart code
    avec PyQt5 comment redemarer (restart) mon application script avec clique bouton

  2. #2
    Membre habitué Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Points : 137
    Points
    137
    Par défaut
    Bonjour rabeh.ram,
    sans un code source minimal et un peu plus d'explications sur ce que tu veux faire ça va être dur de pouvoir t'aider...
    Tu veux créer une fenêtre dans laquelle un bouton permettrait de restart le programme entier ?

  3. #3
    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,

    Si tu ne termines pas les fils de discussion que tu crées, alors que des personnes ont pris la peine de te répondre, tu risques fort ne ne plus avoir de réponse...
    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
    Membre du Club
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Si tu ne termines pas les fils de discussion que tu crées, alors que des personnes ont pris la peine de te répondre, tu risques fort ne ne plus avoir de réponse...
    salut a tous ;
    Désolé, je n'ai pas répondu à vos réponses car j'étais occupé ces jours-ci et je ne pouvais pas utiliser l'ordinateur

  5. #5
    Membre du Club
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par racine carrée Voir le message
    Bonjour rabeh.ram,
    sans un code source minimal et un peu plus d'explications sur ce que tu veux faire ça va être dur de pouvoir t'aider...
    Tu veux créer une fenêtre dans laquelle un bouton permettrait de restart le programme entier ?
    J'ai besoin d'un code qui redémarre complètement le programme en cliquant sur le bouton de redémarrage

    Nom : 111.PNG
Affichages : 876
Taille : 2,9 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    from PyQt5 import QtCore, QtGui, QtWidgets
     
     
    class Ui_Form(object):
        def setupUi(self, Form):
            Form.setObjectName("Form")
            Form.resize(461, 263)
            self.pushButton = QtWidgets.QPushButton(Form)
            self.pushButton.setGeometry(QtCore.QRect(30, 80, 131, 41))
            self.pushButton.setObjectName("pushButton")
     
     
            self.retranslateUi(Form)
            QtCore.QMetaObject.connectSlotsByName(Form)
     
        def retranslateUi(self, Form):
            _translate = QtCore.QCoreApplication.translate
            Form.setWindowTitle(_translate("Form", "Form"))
            self.pushButton.setText(_translate("Form", "Redémarrer"))
     
     
    if __name__ == "__main__":
        import sys
        app = QtWidgets.QApplication(sys.argv)
        Form = QtWidgets.QWidget()
        ui = Ui_Form()
        ui.setupUi(Form)
        Form.show()
        sys.exit(app.exec_())

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Vous pouvez envisager de démarrer votre programme avec subprocess.check_call.
    Lorsque çà se termine vous examinez le status retourné et vous redémarrez ou pas.

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

  7. #7
    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,

    Je propose plutôt l'une des fonctions os.exec* (voir ici: https://docs.python.org/fr/3/library/os.html#os.execl).

    L'avantage est que le nouveau programme lancé prend la place du programme qui lance, et ne crée pas un nouveau processus (et donc ne retourne pas au programme initial!).

    Il y a différentes versions, et on peut par exemple ajouter un dictionnaire des variables d'environnement.

    Comme on est dans le forum PyQt, voilà un petit programme graphique qui se relance à chaque clic sur le bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
     
    import sys
    import os
    from PyQt5 import QtWidgets
     
    #############################################################################
    class Fenetre(QtWidgets.QWidget):
     
        #========================================================================
        def __init__(self, parent=None):
            super().__init__(parent)
            self.resize(400, 300)
     
            self.bouton = QtWidgets.QPushButton("Redémarre le programme", self)
            self.bouton.clicked.connect(self.clictest)
     
            layout = QtWidgets.QGridLayout()
            layout.addWidget(self.bouton, 0, 0)
            self.setLayout(layout)
     
        #========================================================================
        def clictest(self):
            """redémarre le programme
            """
            os.execv(sys.executable, [sys.executable] + sys.argv)
     
    #############################################################################
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
     
        QtWidgets.QMessageBox.information(None,
            "Attention:",
            "Nouvelle exécution du programme!")
     
        fen = Fenetre()
        fen.show()
        sys.exit(app.exec_())
    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

  8. #8
    Membre du Club
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Points : 65
    Points
    65
    Par défaut
    Merci à tous, le problème a été résolu par le code de Mr: tyrtamos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment utiliser code::blocks
    Par zinni dans le forum Code::Blocks
    Réponses: 9
    Dernier message: 13/02/2007, 14h36
  2. commenter le code avec doxygen
    Par ryadh.naouar dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 03/01/2007, 17h06
  3. Commenter le code
    Par mambo dans le forum C++
    Réponses: 19
    Dernier message: 12/08/2006, 01h08
  4. Comment commenter son code source proprement ...
    Par basnifo dans le forum MFC
    Réponses: 3
    Dernier message: 31/03/2006, 17h22

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