2013-02-14 10 views
10

Python ve tkinter kullanarak bir GUI yapıyorum ve sadece herhangi bir çıktı metni herhangi bir çıkış metni yapmak için GUI üzerinde bir pencerede görünecek olup olmadığını merak ediyorum tercüman/kabuk? Bryan Oakley açıklamada önerildiği gibi peşinPython tkinter: GUI üzerindeki bir metin kutusunda herhangi bir çıktının görünmesini sağlayın

+0

olası yinelenen [Python: GUI için CLI dönüştürme] (http://stackoverflow.com/questions/12351786/python-converting-cli-to-gui) –

+2

gerçekten dup o –

+0

nasıl soruyorsunuz değil GUI'nizde "print 'foo'" yapın, ancak metin widget'ında sihirli bir şekilde görünmesini sağlayın. –

cevap

7

yılında

sayesinde, istediğiniz kadar, önceki soruya Python : Converting CLI to GUI cevapları bkz “GUI'nizin baskı 'foo', ancak sihirli metin aletinin görünmesini”. Bu cevap, bir metin kutusunda çıktı üretmenin daha basit konusunu ele almaktadır. Kaydırıcı bir metin penceresi oluşturmak için bir metin parçacığı oluşturmak ve yerleştirmek veya yerleştirmek (mtb olarak adlandırın), ardından ms dizesini mtb metin kutusuna eklemek için mtb.insert(Tkinter.END, ms) gibi komutları kullanın ve kutu kaydırmayı yapmak için mtb.see(Tkinter.END) gibi. (Daha fazla bilgi için “The Tkinter Text Widget” belgelere bakın.) Örneğin:

#!/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() 

Not, metin penceresi uzun süre açık kalacak ve/veya metin gigabayt birikir bekliyorsanız, belki ne kadar verileri takip metin kutusunda ve sınırlamak için delete yöntemini aralıklarla kullanın. arasında

+1

İhtiyacım olan şey, GUI'ye yerleştirilen düğmeler tarafından çağrılan işlevlerden elde edilen herhangi bir metni gösteren GUI penceresine yerleştirilen bir kutu. –

İlgili konular