Mar-04-2019, 05:50 AM
@Alfalfa, thanks for response, 1st and 3rd applied, but still can't make 2nd work. It doesn't crash program or anything, but either emit signal or call class procedure don't update progress bar :( I added part of convert module below.
class Window(QtBaseClass, Ui_MainWindow): def __init__(self, parent=None): super(QtBaseClass, self).__init__(parent) self.setupUi(self) self.threading = ThreadClass(self) self.threading.signal.connect(self.update_progress_bar) self.push_import.clicked.connect(self.import_data) self.push_cancel.clicked.connect(self.close_app) self.push_ok.clicked.connect(self.process_input) def update_progress_bar(self, progress_val): self.input_progress_bar.setValue(progress_val) def import_data(self): db_analysis.insert_data() def process_input(self): self.threading.start() def closeEvent(self, event): odp = QMessageBox.question( self, 'Exit', "Are you sure you want exit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if odp == QMessageBox.Yes: event.accept() else: event.ignore() def close_app(self): odp = QMessageBox.question( self, 'Exit', "Are you sure you want exit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if odp == QMessageBox.Yes: sys.exit() class ThreadClass(QThread): signal = QtCore.pyqtSignal(int) def __init__(self, window, parent=None): super(ThreadClass, self).__init__(parent) self.window = window def run(self): convert.convert_main(self, self.window.input_line.text()) # convert module def convert_main(worker, input_array): worker = worker.signal window = ui_main.Window() my_list = list(map(int, input_array.split(" "))) for i to my_list: #some loop code worker.emit(my_list.index(a)/len(my_list)) window.update_progress_bar(my_list.index(a)/len(my_list))