PyQt에서 파일 복사본의 진행 상태를 표시하는 QProgressBar를 얻으려고합니다. 나는 대략 보았고 QFile을 사용하는 쓰레드에서 실제 복사본을 실행하는 것으로 끝났다. 나는 단지 바를 업데이트 할 수 없다. 신호가 분명 방출되는되지 않도록PyQt 파일 복사 진행률 표시 줄
class ProgressDialog(QtGui.QDialog):
def __init__(self, parent, source, destination):
QtGui.QDialog.__init__(self, parent)
self.parent = parent
self.source = source
self.destination = destination
self.add_diag = progress_diag.Ui_Dialog()
self.add_diag.setupUi(self)
self.add_diag.infoLabel.setText("Copying: %s" % (self.source))
self.sourcefile = QtCore.QFile(self.source)
self.add_diag.progressBar.setMinimum(0)
self.add_diag.progressBar.setMaximum(self.sourcefile.size()/1024)
self.written = 0
self.show()
self.copy()
def copy(self):
copy_thread = CopyThread(self, self.sourcefile, self.destination)
self.connect(copy_thread.destination_file, QtCore.SIGNAL("bytesWritten(qint64)"), self.update_progress)
copy_thread.procDone.connect(self.finished_copy)
copy_thread.start()
def update_progress(self, progress):
print "Working", progress
self.written += progress
self.add_diag.progressBar.setValue(written/1024)
def finished_copy(self, state):
self.close()
class CopyThread(QtCore.QThread):
procDone = QtCore.pyqtSignal(bool)
def __init__(self, parent, source, destination):
QtCore.QThread.__init__(self, parent)
self.source = source
self.destination_file = QtCore.QFile(destination)
def run(self):
self.source.copy(self.destination_file.fileName())
self.procDone.emit(True)
update_progess라는 결코 극복하지만 난 이유를 잘 모르겠어요 :
는 여기에 몇 가지 코드입니다.
필자는이 점을 높이 및 낮게 조사했지만 좋은 PyQt 해결책을 찾지 못해 어떤 도움도 도움이 될 것입니다.
문제는 CopyThread ...에 표시되는 것 같습니다. 표시되지 않습니다. –