Python pygtk progressbar不工作

Python pygtk progressbar不工作,python,pygtk,Python,Pygtk,当我的程序接收到新文件时,文件复制良好,但进度条不移动。。。如果可能的话,请给我推荐一个更好的算法。。谢谢 def filetransfer(self): s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(('',30098)) s.listen(1

当我的程序接收到新文件时,文件复制良好,但进度条不移动。。。如果可能的话,请给我推荐一个更好的算法。。谢谢

    def filetransfer(self):
        s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('',30098))
        s.listen(1)
        data='val'
        while True:
            request = s.accept()
            if request!=None:
                new_sock,addr=request
                break
        print 'Connected by', addr
        destination=open(data,'wb')
        while data!='':
            time.sleep(0.01)
            start=time.time()
            data=new_sock.recv(1024)
            end=time.time()
            xact=int(end-start)
            destination.write(data)
            self.run(xact)      
       new_sock.close()
       s.close()
       return


    def run_(self,xact):
       gobject.timeout_add(xact, self.update)
    def update(self):       
        if self.progressbar.get_fraction() >= 1.0:
             value = 0.0
         else:
             value = self.progressbar.get_fraction() + 0.1
         self.progressbar.set_fraction(value) 
         percent = value * 100
         percent = str(int(percent))
         self.progressbar.set_text(percent + "%")
         return True

我不知道为什么这么多人在评论中回答

您需要在循环中调用“Update()”,如上面评论中所述


但是,如果这不起作用,请更新问题,以便我能进一步帮助您。

您甚至没有说您使用的是什么gui框架。公认的答案完全满足了这个问题。