PyQt4 애플리케이션에는 사용자가 avi 파일을 저장할 수있는 기능이 있습니다. 이를 위해 이하는 saveMovie 방법은 메인 창에 구현되었습니다PyQt : 선택 후 QtGui.QFileDialog.getSaveFileName이 닫히지 않습니다.
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 함수가 완료 될 때까지 전체 응용 프로그램이 응답하지 않습니다.
이 문제를 방지하려면 어떻게해야합니까?
'processEvents()'에 대한 호출을 추가해보십시오. [이 질문] (http://stackoverflow.com/questions/9622021/pyqt-run-time-issue)을 참조하십시오. – Junuxx
** if ** 문 앞에 ** QApplication.processEvents() **에 대한 호출을 추가했지만 불행히도 작동하지 않았습니다. –
'processEvents()'가 차단 부분으로 가야합니다. 'make_movie'는이 경우에 사용됩니다. 문제를 해결할 수도 있고하지 않을 수도있는'make_movie' 구현에 따라. 또는 해당 부분을 다른 스레드로 이동할 수 있습니다. – Avaris