Bonjour,

Je cherche à renvoyer le résultat de la commande "wget" dans un gtk.TextView, mais malgré mes nombreux essais ça ne fonctionne pas...

J'utilise pygtk2.

J'ai par exemple essayé ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import gtk,pygtk
import subprocess
import gobject
 
class CommandTextView(gtk.TextView):
    def __init__(self,command):
        super(CommandTextView,self).__init__()
 
        self.command = command
    def run(self):
        proc = subprocess.Popen(self.command,shell=True,stdout=subprocess.PIPE)
        gobject.io_add_watch(proc.stdout,
                          gobject.IO_IN,
                          self.write_to_buffer)
    def write_to_buffer(self, fd, condition):
        if condition == gobject.IO_IN:
            char = fd.read(1)
            buf = self.get_buffer()
            buf.insert_at_cursor(char)
            return True
        else:
            return False
 
def test():
    win=gtk.Window()
    win.set_size_request(300,300)
    win.connect('delete-event',lambda w,e : gtk.main_quit())
    ctv=CommandTextView("wget http://download-origin.cdn.mozilla.net/pub/mozilla.org/firefox/releases/1.0.5/source/firefox-1.0.5-source.tar.bz2")
    win.add(ctv)
    win.show_all()
    ctv.run()
    gtk.main()
 
if __name__=='__main__': test()
Il marche avec la commande "ls" par exemple, mais pour wget ça ne s'affiche pas dans la textView mais dans la console depuis laquelle on lance le programme python... Je sèche !

Avez-vous des pistes ?

Merci d'avance pour votre aide.

Floréal.