私の PyQt4 アプリケーションには、ユーザーがaviファイルを保存できる機能があります。この目的のために、saveMovieメソッドがメイン ウィンドウに実装されています。
def saveMovie(self):
""" Let the user make a movie out of the current experiment. """
filename = QtGui.QFileDialog.getSaveFileName(self, "Export Movie", "",
'AVI Movie File (*.avi)')
if filename != "":
dialog = QtGui.QProgressDialog('',
QtCore.QString(),
0, 100,
self,
QtCore.Qt.Dialog |
QtCore.Qt.WindowTitleHint)
dialog.setWindowModality(QtCore.Qt.WindowModal)
dialog.setWindowTitle('Exporting Movie')
dialog.setLabelText('Resampling...')
dialog.show()
make_movie(self.appStatus, filename, dialog)
dialog.close()
私の考えは、QProgressDialogを使用して、ビデオのエンコード作業がどのように進行しているかを示すことです。
それにもかかわらず、ファイル名の選択後、QFileDialogは消えず、make_movie関数が完了するまでアプリケーション全体が応答しません。
これを避けるにはどうすればよいですか?