Afficher une variable dans un widget python

laurent70197 Messages postés 1 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je viens de créer un petit prog en python Tk pour afficher sous linux le contenu de la commande
atq
. Mais je n'arrive pas a afficher le contenu de la variable ou se trouve le resultat de la commande. Elle s'affiche bien si je fais un print, mais pas si j'essaie de l'afficher dans un label.

J'imagine que j'ai fait une toute petite bêtise, mais je n'arrive pas a mettre la main dessus.

Si vous la voyez, ca m'arrangerait.

from Tkinter import *
import os

fenetre1 = Tk()
fenetre1.title('Atq')
at = "atq"
result = os.system(at)
result = StringVar()
print result
var_textelabel = Label(fenetre1, textvariable=result)
var_textelabel.pack()
fenetre1.mainloop()


Merci d'avance

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Bonjour,

    Pour moi ton erreur est ici :

    result = os.system(at)
    result = StringVar()


    En effet, tu écrases le résultat de
    os.system(at)
    avec
    StringVar()
    . Il faudrait j'imagine que
    StringVar()
    prenne en paramètre
    result
    .

    Il y aussi quelques amélioration qui devraient être apportées :
    - fais du python3 :-)
    - utilise
    Popen
    au lieu de
    os.system
    notamment pour récupérer les éventuelles erreurs.
    - contrôle si l'appel à
    atq
    a marché
    - utilise un framework plus moderne que tk (e.g. gtk ou pyqt)

    Bonne chance
    0