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

EDI Python Discussion :

[quasi résolu] affichage différent en fonction du mode de lancement


Sujet :

EDI Python

  1. #1
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut [quasi résolu] affichage différent en fonction du mode de lancement
    bonjour à tou.te.s

    si je lance le script en ligne de commande avec «python xx.py», on affiche =>
    Sensors: System Temperatures: cpu: 49.4 C mobo: N/A gpu: radeon temp: 40 C
    Fan Speeds (RPM): N/A
    si je lance le script en cliquant droit sur xx.py et en choisissant python pour l'exécuter, on affiche =>
    12Sensors: 12System Temperatures 12cpu 48.0 C 12mobo N/A 12gpu radeon 12temp 41 C
    12Fan Speeds (RPM) N/A
    en fait le contenu exact est "x0312" pour les "12"


    avec ce script
    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
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import os
    import psutil
    import subprocess
    import sys
    import time
    from PyQt5 import QtCore, QtGui
    from PyQt5.QtWidgets import *
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    class Win(QWidget):
        def affiche(self):
            self.lab2=QTextEdit()
            self.grille.addWidget(self.lab2,0,0)
            self.rep=subprocess.Popen(
                'inxi -s',shell=True,
                stdout=subprocess.PIPE).communicate()[0]
            self.z2=self.rep.decode(errors='ignore').split("\n")
            self.lab2.setText('<br>'.join(self.z2))
        def __init__(self):
            super(Win, self).__init__()
            QWidget.__init__(self,None)
            self.grille=QGridLayout(self)
            self.affiche()
    app=QApplication(sys.argv)
    ecr=Win()
    ecr.show()
    sys.exit(app.exec_())
    si quelqu'un avait l'amabilité de m'expliquer
    merci d'avance

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

    Manifestement il s'agit dune bizarrerie spécifique à ton environnement.

    Par contre, je me demande pourquoi tu instancies deux fois la classe QWidget parent et que tu crées un autre widget ailleurs que dans l'__init__().

    Ceci sera préférable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        def __init__(self):
            super().__init__()
            self.grille = QGridLayout(self)
            self.lab2 = QTextEdit(self)
            self.grille.addWidget(self.lab2, 0, 0)

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

    Citation Envoyé par bul Voir le message
    si quelqu'un avait l'amabilité de m'expliquer
    Il est peu probable que Qt s'amuse à ajouter des caractères mais çà ne vous coute rien de regarder le contenu remonté par la commande "inxi -s" dans les deux cas.
    Puis de remplacer "inxi -s" par une commande standard du genre "ls -all" pour voir ce qu'il se passe.
    Le cas échéant, poser la question dans un forum "inxi" ou relire sa documentation pour voir s'il y a des "switchs" qui permettent d'avoir une sortie identique.

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

  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
    Bonjour,

    Juste une idée.

    Je vois dans les copies d'écran d'exemples de inxi, que certains mots sont affichés avec couleur: https://code.google.com/archive/p/inxi/wikis/inxi.wiki. Est-que les caractères en trop pourraient être des codes couleurs destinés au terminal Linux?

    Par contre, je ne sais pas pourquoi on trouve ces caractères dans un mode de lancement et pas dans un autre. Peut-être que dans un cas, Python lance inxi directement, et dans l'autre, Python lance inxi pour la console (donc, avec les codes couleur).

    Mais si c'est ça, on doit pouvoir supprimer ces codes couleurs pour qu'ils n'apparaissent jamais.
    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
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    >>bizarrerie spécifique à ton environnement
    probablement
    >>
    pourquoi tu instancies deux fois la classe QWidget
    extrait d'un script plus complexe et tu as raison
    >>on doit pouvoir supprimer ces codes "en trop"
    de ce coté là ça devrait aller
    >>je ne sais pas pourquoi on trouve ces caractères
    >>dans un mode de lancement et pas dans un autre
    c'était ma question
    je vais creuser vos pistes,on verra ce qu ça donne
    je vous tiens au courant
    merci

  6. #6
    bul
    bul est déconnecté
    Membre habitué Avatar de bul
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 193
    Points : 133
    Points
    133
    Par défaut
    à priori, «inxi» affiche des "choses bizarres" car avec «list -all» tout baigne
    pour "contourner" donc : replace('x0312','') et replace('x03','')
    on va considérer comme résolu
    merci à vous, mais si vous voyez une autre possibilité,
    n'hésitez pas !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/06/2019, 17h18
  2. Réponses: 4
    Dernier message: 10/02/2017, 08h07
  3. Affichage web différent en fonction du chemin
    Par Pchom dans le forum Langage
    Réponses: 7
    Dernier message: 28/09/2013, 14h56
  4. Affichage différent en fonction de l'utilisateur
    Par topoto dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2011, 22h32
  5. Affichage de données différent en fonction de la sélection d'une ComboBox
    Par seiryujay dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 06/02/2009, 12h39

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