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 :

Insérer un log [QtGui]


Sujet :

PyQt Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut Insérer un log
    Bonjour,
    j'aimerais dans mon programme graphique avec pyqt4 insérer un log (dynamique, pas juste le contenu d'un fichier), c'est à dire avoir une zone de texte ou les resultats d'un programme serait affichee, un peu comme tail -f mais en graphique, je sais qu'on peut le faire avec un QtextEdit ( je l'ai lu quelque part ) mais je n'ai aucune idée de comment procéder pour y arriver.

    Merci d'avance

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

    Je peux te proposer un petit exemple, mais souhaites-tu mettre le texte log en bas d'une fenêtre (affichage par appel d'une méthode) ou dans une fenêtre indépendante qui ne fait que ça (affichage par transmission d'un message)?

    Pour ma part, je fais le plus souvent le 1er cas. En plus, il est facile de retoucher le texte du log (mettre un titre par ex.), de faire un copier/coller de tout ou partie, et d'imprimer: c'est vraiment très pratique!
    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
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    tu peux aisément le faire en créant une fonction print dans ton code.

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            # Ton editeur
            self.editor = QtGui.QPlainTextEdit(MainWindow)
            self.editor.setReadOnly(True)
     
        def _print(self, s):
            line = QtCore.QString.fromUtf8(s)  # si necessaire
            self.editor.appendPlainText(line)
            self.editor.ensureCursorVisible()
    Ceci te permet à partir de n'importe quelle autre fonction d'accéder à ton éditeur.

    Note: Utilise "_print" et non "print"

    Pense à ajouter les retours ligne "\n" où cela est nécessaire.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Ok, donc si je comprends bien une fois que j'ai crée mon QTextEdit je peux utiliser
    ta fonction _print comme suis par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    _print("doing some stuf ...\n")
    _print('doing some stuff again\n")
    et ça devrait s'afficher dans le QtextEdit

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Ben oui, sauf que:

    J'utilise un QPlainTextEdit dans l'exemple, si tu utilise un QTextEdit, il faudra utiliser append() pour écrire dedans.

    Et mon exemple sous-entend que l'on est dans une classe, donc : "self._print"


    Cela dit, pour un log, le QPlainTextEdit est amplement suffisant.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Oui en effet je me sers d'un qtextedit, je n'ai pas besoin de beaucoup d'option, merci beaucoup ça fonctionne très bien

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/06/2012, 13h58
  2. probleme insérer session id dans les log
    Par exodius dans le forum Logging
    Réponses: 2
    Dernier message: 01/08/2008, 10h48
  3. [log4j] insérer session id dans les log
    Par kij dans le forum Logging
    Réponses: 4
    Dernier message: 06/06/2008, 14h43
  4. Insérer du texte dans /var/log/buildkern.log
    Par Olivier Regnier dans le forum Linux
    Réponses: 3
    Dernier message: 30/03/2008, 00h53
  5. [] [Stratégie] Comment créer un fichier log
    Par Skeezo dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 16/09/2002, 18h30

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