pygtk进度条不起作用

时间:2011-09-14 14:38:16

标签: 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)
        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

1 个答案:

答案 0 :(得分:0)

我不确定为什么这么多人会在评论中回答......

你需要在循环中调用“Update()”,就像上面评论中发布的问题一样。

Progress bar not updating during operation

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