Afficher une variable dans un widget python

Fermé
laurent70197 Messages postés 1 Date d'inscription mercredi 28 novembre 2018 Statut Membre Dernière intervention 28 novembre 2018 - Modifié le 30 nov. 2018 à 16:40
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 30 nov. 2018 à 16:44
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

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
Modifié le 30 nov. 2018 à 16:45
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