Python Forum
PyQt Threading & Class handling
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PyQt Threading & Class handling
#3
@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))
Reply


Messages In This Thread
PyQt Threading & Class handling - by mrdominikku - Mar-02-2019, 06:02 PM
RE: PyQt Threading & Class handling - by Alfalfa - Mar-03-2019, 04:14 PM
RE: PyQt Threading & Class handling - by mrdominikku - Mar-04-2019, 05:50 AM
RE: PyQt Threading & Class handling - by Alfalfa - Mar-04-2019, 11:28 AM
RE: PyQt Threading & Class handling - by Alfalfa - Mar-10-2019, 03:12 PM
RE: PyQt Threading & Class handling - by Alfalfa - Mar-10-2019, 06:35 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020