我正在嘗試使用PyQt爲名爲「HandBrake」的視頻轉換器應用程序構建一個簡單的GUI。子進程Popen阻止PyQt圖形用戶界面
我的問題是,當我選擇一個視頻文件進行轉換時,子進程Popen用必要的參數啓動手剎應用程序,但在等待手剎結束時,gui被阻止,因此我無法做任何更改。 (例如:我不能禁用pushButton,也不能更改它的文本)
我不是在尋找更復雜的解決方案,例如進度條等,但我只想簡單地禁用按鈕並在等待時更改其文本爲程序完成轉換。
我該怎麼用python & pyqt做這種事?
def videoProcess():
self.pushButton.setEnabled(0)
self.pushButton.setText("Please Wait")
command = "handbrake.exe -i somefile.wmv -o somefile.mp4"
p = subprocess.Popen(str(command), shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while 1:
line = p.stdout.readline()
if not line:
self.pushButton.setEnabled(1)
break
使用一個單獨的線程或使用'multiprocessing'。 – 2011-04-10 18:50:00