import gtk
from subprocess import Popen
from subprocess import PIPE
class Ping(gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
self.connect('delete_event', self.delete_event)
self.box = gtk.VBox()
self.add(self.box)
self.ping = gtk.Button('Ping')
self.box.add(self.ping)
self.ping.connect("pressed",self.start_ping)
self.text = gtk.TextBuffer()
self.result = gtk.TextView(self.text)
self.result.set_editable(False)
self.box.add(self.result)
self.show_all()
def delete_event(self, widget, event, data=None):
gtk.main_quit()
def start_ping(self,event):
p = Popen(["/bin/ping","-c","4","ya.ru"],stdout=PIPE)
sts = p.communicate()[0]
self.text.set_text(sts)
def main():
Ping()
gtk.main()
return 0
if __name__ == '__main__':
main()
Хочется, чтобы вывод появлялся в TextView построчно. В документации subprocess есть пример как передать вывод на вход другому приложению, а вот как реализовать такое - не нашел.