PyQt5 QProgressDialog Threading (отслеживание прогресса img_crop_function)

Я хотел бы запустить QProgressDialog Modal и Crop_img_function в одно и то же время.(тогда я хотел бы увидеть ход выполнения функции crop_img_function.) Но теперь программа выполняет функцию crop_img_function после закрытия (отмены) модального окна QProgressDialog. Как я могу решить это, пожалуйста?

          def run_func(self, interval, path):
        modal = QProgressDialog('ing....', 'Cancel', 0, 100, self)
        modal.setWindowModality(Qt.ApplicationModal)
        modal.exec_()

        for frame_num in range(0,self.total_frames,interval):
            filename = self.filename.text()[:-4]

            self.cap.set(cv2.CAP_PROP_POS_FRAMES, frame_num)
            _, img = self.cap.read()
            img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
            img = self.preprocessing_img(img)

            h_grids, v_grids = sorted(self.h_grids), sorted(self.v_grids)
            modal.setMaximum(len(h_grids)*len(v_grids))
            start_x, start_y = v_grids.pop(0), h_grids.pop(0)
            saved_x = start_x
            i = 0
            for y in h_grids:
                for x in v_grids:
                    modal.setValue(i)
                    tmp = img[start_y:y, start_x:x]
                    cv2.imwrite('{}/{}_{}_{}.jpg'.format(path, filename, frame_num, i), tmp)
                    start_x = x
                    i += 1
                start_x = saved_x
                start_y = y

0 ответов

Другие вопросы по тегам