Comment puis-je rediriger les données stdout vers un widget tkinter Text?stdout to tkinter GUI
Répondre
Vous devez créer une classe de type fichier dont la méthode write
écrit à la place dans le widget Tkinter, puis sys.stdout = <your new class>
. Voir this question.
Exemple (copié à partir du lien):
class IORedirector(object):
'''A general class for redirecting I/O to this Text widget.'''
def __init__(self,text_area):
self.text_area = text_area
class StdoutRedirector(IORedirector):
'''A class for redirecting stdout to this Text widget.'''
def write(self,str):
self.text_area.write(str,False)
puis, dans votre widget Tkinter:
# To start redirecting stdout:
import sys
sys.stdout = StdoutRedirector(self)
# (where self refers to the widget)
# To stop redirecting stdout:
sys.stdout = sys.__stdout__
Hi! Pourriez-vous peut-être me donner un exemple? Je suis très nouveau avec Python et j'ai du mal à faire fonctionner ça. Beaucoup obligé :) – FLX
La question liée a tout le code dont vous avez besoin, je pense. Vous devez créer votre propre version de la classe 'StdoutRedirector' comme cela est fait, puis définir' sys.stdout = StdoutRedirector'. Je vais copier le code dans ma réponse. – katrielalex
C'est une vieille question, mais je l'ai trouvé une solution que je voudrais partager avec la communauté. Mon exemple conduit une liste du répertoire de travail vers une fenêtre Tk. J'utilise Python 3.6 sur Windows 8. J'ai couru le code à travers Jupyter Notebook et Eclipse en utilisant Pydev.
import os
from tkinter import *
from subprocess import Popen, PIPE
root = Tk()
text = Text(root)
text.pack()
def ls_proc():
return Popen(['ls'], stdout=PIPE)
with dir_proc() as p:
if p.stdout:
for line in p.stdout:
text.insert(END, line)
if p.stderr:
for line in p.stderr:
text.insert(END, line)
root.mainloop()
- 1. AttributeError dans la programmation de tkinter gui
- 2. GUI Python (tkinter; pygtk + glade), py2exe
- 3. Créer une classe d'image dans Tkinter Gui
- 4. Menu de classe dans Tkinter Gui
- 5. Comment faire pour rediriger TO stdout?
- 6. Erreur dans la programmation gui en python en utilisant tkinter
- 7. Développement de GUI en Python: Tkinter vs PyQt
- 8. Tkinter aide boutons
- 9. Comment puis-je commencer avec Tkinter?
- 10. GUI et différence non gui
- 11. GUI de l'Agenda Google GUI
- 12. C# StdIn/StdOut Performance
- 13. Python/Tkinter: Les threads de Tkinter StringVar (IntVar, etc) sont-ils sûrs?
- 14. faire un python gui pour ffdshow
- 15. Comment puis-je obtenir stdout de tcl dans une variable de chaîne python lors de l'utilisation de tkinter?
- 16. Menu d'aide de Python Tkinter
- 17. Tkinter Global Binding
- 18. tkinter: glisser des widgets
- 19. Visualiseur d'aide Tkinter
- 20. TKinter: un widget curseur?
- 21. Courir matplotlib dans tkinter
- 22. bouton Tkinter bind
- 23. Tkinter comportement inattendu
- 24. Installation de Tkinter
- 25. Python tkInter Fun d'entrée
- 26. Tkinter grid() Manager
- 27. widgets Toplevel dans Tkinter
- 28. Deux images Tkinter
- 29. Get Tkinter Window Size
- 30. Tkinter Symbol intégrale
Étape 1. Acceptez quelques réponses à vos questions précédentes ... –