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

Python Discussion :

Sauvegarde via le module pyQT5 [Python 3.X]


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2020
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Sauvegarde via le module pyQT5
    Bonjour,

    Je travaille sur un projet assez dense qui utilise le module PyQt5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from PyQt5 import QtCore, QtGui, QtWidgets
    L'application en question fonctionne mais je n'ai toujours pas réussi à enregistrer les différentes modifications.

    J'ai conçu ses lignes avec un bouton "enregistrer" qui permettrait d'enregistrer l'état d'avancement de l'application.

    Voici ce que j'ai réussi à faire avec la création d'un bouton "Enregistrer" et la même chose avec "Enregistrer sous"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    self.saveAsAction = QtWidgets.QAction(MainWindow)
    self.saveAsAction.setObjectName("saveAsAction")
    self.quitAction = QtWidgets.QAction(MainWindow)
    self.saveAction.setText(_translate("MainWindow", "Enregistrer"))
     
     self.saveAction.setShortcut(_translate("MainWindow", "Ctrl+S"))
     
     self.saveAsAction.setText(_translate("MainWindow", "Enregistrer sous..."))
     self.saveAsAction.setShortcut(_translate("MainWindow", "Ctrl+Shift+S"))
    Mais je bloque sur la suite, et je n'ai pas réussi à trouver d'aide sur ce sujet.

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    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 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Tu sais qu'il existe un forum dédié PyQt? Ca sent le type qui a vachement cherché.
    Citation Envoyé par Entei Voir le message
    L'application en question fonctionne mais je n'ai toujours pas réussi à enregistrer les différentes modifications.

    J'ai conçu ses lignes avec un bouton "enregistrer" qui permettrait d'enregistrer l'état d'avancement de l'application.
    Mais je bloque sur la suite, et je n'ai pas réussi à trouver d'aide sur ce sujet.
    Surtout ne nous dis pas dans quel contexte il s'agit (un menu je présume). Donc ben oui, c'est à toi de tout construire les actions que feront le menu..
    Il te faut relier le signal "triggered" de chaque action à un slot qui se chargera alors de proposer à l'utilisateur de choisir le fichier dans lequel il veut enregistrer ce choix (je pense qu'un QFileDialog.getSaveFileName devait faire l'affaire) puis une fois ce fichier choisi, à toi de coder l'enregistrement.

    Exemple de connexion
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    self.saveAsAction = QtWidgets.QAction(MainWindow)
    self.saveAsAction.setText(_translate("MainWindow", "Enregistrer sous..."))
    self.saveAsAction.triggered.connect(self.toto)
    self.addAction(self.saveAsAction)
     
    self.quitAction=QtWidgets.QAction(MainWindow)
    self.quitAction.setText(_translate("MainWindow", "Quitter"))
    self.quitAction.triggered.connect(MainWindow.close)
    self.addAction(self.quitAction)
    ...
    def toto(self): print("toto")
    Tu lances et chaque fois que tu cliqueras dans le menu "Enregistrer sous" tu verras apparaitre "toto" à l'écran (ensuite donc là tu dois tout coder). Et le menu "quitter" fermera l'application.

    Maintenant (perso) je préfère utiliser QMenu.addAction() qui permet de simplifier certaines étapes...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    self.addAction(_translate("MainWindow", "Enregistrer sous..."), self.toto)
    self.addAction(_translate("MainWindow", "Quitter"), mainwindow.close)
    ...
    def toto(self): print("toto")

    Pour le codage, je te conseillerais une fonction (enfin méthode) un peu universelle qui prend en paramètre un fichier et qui se charge d'enregistrer dans le fichier. Ainsi le menu "Enregistrer" et "Enregistrer sous" pourront être factorisés ; le menu "Enregistrer" faisant appel à un slotX qui se charge d'appeler la fonction en lui passant le fichier en cours tandis que le menu "Enregistrer sous" faisant appel à un slotY qui commence par demander le nom du fichier puis ensuite appelle la même fonction en lui passant le fichier spécifié.
    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]

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2020
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Bonsoir,

    Merci beaucoup pour vos conseils, je vais essayer de creuser dans cette voie.

    Bonne soirée

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

Discussions similaires

  1. Faire des sauvegardes via Internet sur un disque distant
    Par tbassetto dans le forum Composants
    Réponses: 0
    Dernier message: 27/05/2009, 22h42
  2. Sauvegarde via réseau avec Norton Ghost (version 9)
    Par rjl dans le forum Sécurité
    Réponses: 1
    Dernier message: 05/05/2009, 10h21
  3. [MySQL] Sauvegarde via variable de session lors d'un select.
    Par sdgarf dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 17/06/2008, 12h01
  4. sauvegarde via programme ecrit en C#
    Par ducker88 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 10/07/2006, 15h39
  5. [VB.NET] Manipuler une feuille via un module
    Par dinbougre dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/01/2005, 17h15

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