我想知道制作GUI进度条的好方法。我使用python,Glade/GTK。我希望获得的不仅仅是一个脉冲条的程序的一个例子。有些东西可以为用户提供更准确的方法来了解进度。我试图捕获这个程序是cdparanoia,但想知道如何为wget等其他程序一般执行此操作。需要注意的是,这两个程序的信息是在stderr上输出的。使用命令行工具的GUI进度指示器
我应该提及做
output = p.stderr.read(1)
print output
时不显示文本进度条显示。它几乎就像是用不同的方式对待非交互式外壳。没有回车(\ r),就像我以为会这样做。
值编码是这样:
import subprocess, shlex, gtk
command = 'cdparanoia -w -Z 1- - | sox -t wav - "my disk.flac"'
p = subprocess(shlex.split(command), stderr=subprocess.PIPE)
gui = gtk.Builder()
gui.add_from_file("pulsebar.glade")
#do magic here to make a good pulsebar
感激, Narnie
这很可能是它以不同的方式处理非交互式shell。对于文本进度条,它可能使用类似ncurses的东西,如果它不在终端上,则不起作用。我不知道具体情况。 – ptomato 2011-05-07 06:43:34
有什么好运? '-e'有帮助吗?我测试了它 - 当用'-e'调用时,它似乎输出到stderr;并且'>'字符的位置看起来像是一个快速,简单和容易的方法来计算适当的分数。 – senderle 2011-05-10 22:02:39
不幸的是,我放弃了开发这个应用程序足够长的时间,以至于我的回购库中的glade改为下一个GTK3版本。我希望有一天能够把这个过渡到可能会恢复发展的阶段,但是我正处在另一个项目的中间,需要先开始并完成另一个项目,然后才能回到这个阶段。 – narnie 2012-03-03 03:23:03