我想知道製作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