Se, come suggerito nel commento di Bryan Oakley, si vuole “print 'pippo' nella vostra interfaccia grafica, ma hanno apparire magicamente nel widget di testo”, vedere le risposte a domanda precedente Python : Converting CLI to GUI. Questa risposta affronta il problema più semplice di come produrre output in una casella di testo. Per produrre una finestra di testo a scorrimento, creare e posizionare o imballare un widget di testo (chiamiamolo mtb
), quindi utilizzare comandi come mtb.insert(Tkinter.END, ms)
per aggiungere la stringa ms
nella casella di testo mtb
e come mtb.see(Tkinter.END)
per far scorrere la casella. (Per maggiori dettagli, vedere “The Tkinter Text Widget” documentazione.) Ad esempio:
#!/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()
nota, se si prevede che la finestra di testo di rimanere aperto per lunghi periodi e/o accumulare gigabyte di testo, forse tenere traccia di quantità di dati si trova nella casella di testo e usa il metodo delete
a intervalli per limitarlo.
fonte
2013-02-14 18:29:35
possibile duplicato di [Python: conversione CLI in GUI] (http://stackoverflow.com/questions/12351786/python-conversing-cli-to-gui) –
non proprio un dup è lo –
stai chiedendo come fai "print 'foo'" nella tua GUI, ma fallo apparire magicamente nel widget di testo? –