示例#1
0
 def clicked_handler(self):
     info("WorkerStatusButton clicked_handler")
     if self.status == self.Status.NOT_STARTED:
         self.worker_thread = WorkerThread(self.bound_worker_function)
         self.worker_thread.finished.connect(self.finished_handler)
         self.set_status(self.Status.RUNNING)
         self.worker_thread.start()
示例#2
0
class WorkerStatusButton(QPushButton):
    class Status(Enum):
        NOT_STARTED = 0
        RUNNING = 1
        DONE = 2

    def __init__(self, text, bound_worker_function):
        super().__init__(text)
        self.text = text
        self.bound_worker_function = bound_worker_function
        self.clicked.connect(self.clicked_handler)
        self.set_status(self.Status.NOT_STARTED)

    def clicked_handler(self):
        info("WorkerStatusButton clicked_handler")
        if self.status == self.Status.NOT_STARTED:
            self.worker_thread = WorkerThread(self.bound_worker_function)
            self.worker_thread.finished.connect(self.finished_handler)
            self.set_status(self.Status.RUNNING)
            self.worker_thread.start()

    def finished_handler(self):
        info("WorkerStatusButton finished_handler")
        self.set_status(self.Status.DONE)

    def set_status(self, status):
        self.status = status
        if self.status == self.Status.NOT_STARTED:
            self.setText(self.text)
        elif self.status == self.Status.RUNNING:
            self.setText("⌛")
        elif self.status == self.Status.DONE:
            self.setText("✓")
示例#3
0
class WorkerStatusButton(QPushButton):
    class Status(Enum):
        NOT_STARTED = 0
        RUNNING = 1
        DONE = 2

    def __init__(self, text, bound_worker_function):
        super().__init__(text)
        self.text = text
        self.worker_thread = WorkerThread(bound_worker_function)
        self.worker_thread.finished.connect(self.finished_handler)
        self.clicked.connect(self.clicked_handler)
        self.status = self.Status.NOT_STARTED
        self.update_status_indicator()

    def update_status_indicator(self):
        if self.status == self.Status.NOT_STARTED:
            self.setText(self.text)
        elif self.status == self.Status.RUNNING:
            self.setText('⌛')
        elif self.status == self.Status.DONE:
            self.setText('✓')

    def clicked_handler(self):
        info('WorkerStatusButton clicked_handler')
        self.status = self.Status.RUNNING
        self.update_status_indicator()
        self.worker_thread.start()

    def finished_handler(self):
        info('WorkerStatusButton finished_handler')
        self.status = self.Status.DONE
        self.update_status_indicator()
示例#4
0
 def __init__(self, text, bound_worker_function):
     super().__init__(text)
     self.text = text
     self.worker_thread = WorkerThread(bound_worker_function)
     self.worker_thread.finished.connect(self.finished_handler)
     self.clicked.connect(self.clicked_handler)
     self.status = self.Status.NOT_STARTED
     self.update_status_indicator()