Wenn, wie in Bryan Oakley Kommentar vorgeschlagen, wollen Sie „print 'foo' in der GUI, aber habe es in dem Text-Widget magisch erscheinen“, siehe Antworten in vorheriger Frage Python : Converting CLI to GUI. Diese Antwort behandelt das einfachere Problem, wie die Ausgabe in einer Textbox erzeugt wird. Um ein scrollendes Textfenster zu erstellen, erstellen und platzieren Sie ein Text-Widget (nennen wir es mtb
) und verwenden dann Befehle wie , um die Zeichenfolge ms
in das Textfeld mtb
einzufügen, und wie mtb.see(Tkinter.END)
, um die Box scrollen zu lassen. (Siehe „The Tkinter Text Widget“ Dokumentation für weitere Details.) Zum Beispiel:
#!/usr/bin/env python
import Tkinter as tk
def cbc(id, tex):
return lambda : callback(id, tex)
def callback(id, tex):
s = 'At {} f is {}\n'.format(id, id**id/0.987)
tex.insert(tk.END, s)
tex.see(tk.END) # Scroll if necessary
top = tk.Tk()
tex = tk.Text(master=top)
tex.pack(side=tk.RIGHT)
bop = tk.Frame()
bop.pack(side=tk.LEFT)
for k in range(1,10):
tv = 'Say {}'.format(k)
b = tk.Button(bop, text=tv, command=cbc(k, tex))
b.pack()
tk.Button(bop, text='Exit', command=top.destroy).pack()
top.mainloop()
Hinweis, wenn Sie das Textfenster erwarten vielleicht bleiben offen für längere Zeit und/oder zu akkumulieren Gigabyte Text, zu verfolgen, wie viele Daten ist in dem Textfeld, und verwenden Sie die Methode delete
in Intervallen, um es zu begrenzen.
mögliche Duplikate von [Python: CLI in GUI konvertieren] (http://stackoverflow.com/questions/12351786/python-converting-client-gui) –
nicht wirklich ein dup ist es –
Fragen Sie wie tue "print 'foo'" in deiner GUI, aber erscheint es magisch im Text-Widget? –