При использовании python pyqt я создал Qprogressbar с обновлением числа, используя Q thread. Код, показанный ниже, в первый раз успешен, однако при следующем запуске он завершится с ошибкой.
Это для Python PyQt5 в системе Python 3.5. И я попытался сбросить индикатор выполнения на 0, но он не показался правильным
Это функция вызова после того, как я нажимаю кнопку загрузки файла, кнопка загрузки файла и индикатор выполнения находятся в QtWidgets.Qmainwindows
loading_event_name = QtWidgets.QFileDialog.getOpenFileNames(self, 'CSV File', 'C:\\', '*.csv')
self.loading_progress_bar.reset()
self.loading_thread = QThread()
self.loading_worker = Load_Task_Thread()
self.loading_worker.moveToThread(self.loading_thread)
self.loading_thread.started.connect(self.loading_worker.run)
self.loading_thread.start()
self.loading_worker.Load_taskFinished.connect(self.Load_onFinished)
self.loading_worker.Loading_progressChanged.connect(self.loading_progress_bar.setValue, Qt.QueuedConnection)'''
Первый поток загрузки файла будет работать отлично, но при следующем щелчке, если я захочу загрузить новый файл, произойдет сбой программного обеспечения, поток не обновляется, индикатор выполнения не обновляет номер, как в первый раз, и остается вноль, так как я сбросил его. В режиме отладки я тоже не могу выбросить ни одно число на индикатор выполнения:
class Load_Task_Thread(QThread):
Load_taskFinished = pyqtSignal()
Loading_progressChanged = pyqtSignal(int)
def run(self):
progress = 0
for file_name_num in range(len(loading_event[0])):
progress = 90 * file_name_num/len(loading_event_name[0])
self.Loading_progressChanged.emit(progress)
1+1.....
self.Loading_progressChanged.emit(100)
self.Load_taskFinished.emit()
Я ожидал, что независимо от того, сколько нажатий для выбора нового файла, индикатор выполнения может быть обновлен. Или есть какой-нибудь другой простой способ показать прогресс-бар, показывающий процесс загрузки.