J'ai une fonction qui m'affiche du texte.
Je veux afficher ce qu'elle m'affiche dans une fenêtre Tk().
Je sais vaguement que pour afficher du texte dans une fenêtre c'est la méthode Label() ...
Est- ce la bonne méthode?
Comment faire alors?
merci
J'ai une fonction qui m'affiche du texte.
Je veux afficher ce qu'elle m'affiche dans une fenêtre Tk().
Je sais vaguement que pour afficher du texte dans une fenêtre c'est la méthode Label() ...
Est- ce la bonne méthode?
Comment faire alors?
merci
Bonjour,
Je vous préviens que ce que je propose est sous réserve de mon incompétence. J'avais ce souci avec une classe prévue à la fois pour la ligne de commande et pour être cliquodromée. Dans le cliquodrome, je prévois deux méthodes:
Je prévois également un widget d'affichage, en l'espèce un ScrolledText nommé logBox. Ensuite j'encadre mon code duquel je dois capturer la sortie par:
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 def outputs_redirect(self, logfile): if not logfile: print 'logfile == None !' return False retour = True try: logfile.tell() self.saveout = sys.stdout self.saveerr = sys.stderr sys.stdout = logfile sys.stderr = logfile except: print 'pas un file object !' retour = False return retour def restore_from_outputs_redirect(self): if self.redirected: print 'RestoreFromRedirect' sys.stdout = self.saveout sys.stderr = self.saveerr
Voilà, pour moi ça marche bien, mais je crois que c'est léger en particulier au niveau du mélange stdout / stderr
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 logfile = TemporaryFile() self.redirected = self.outputs_redirect(logfile) #code logfile.seek(0) self.logBox.insert(END, 'LOGFILE :\n') for line in logfile.readlines(): self.logBox.insert(END, line) restore_from_outputs_redirect()
Pierre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 from Tkinter import* root=Tk() label=Label(root) def ta_fonction(*args): label['text']="ton message" ta_fonction() label.pack(side=TOP) root.mainloop()
Partager