implement setup.py
This commit is contained in:
35
mymuell2caldav/utils/GuiWorker.py
Normal file
35
mymuell2caldav/utils/GuiWorker.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from PyQt5.QtCore import QThread, pyqtSignal
|
||||
from PyQt5.QtWidgets import QProgressBar, QPushButton, QStatusBar
|
||||
|
||||
|
||||
class GuiWorker(QThread):
|
||||
finished = pyqtSignal(bool, str)
|
||||
rangeChanged = pyqtSignal(int, int)
|
||||
progressChanged = pyqtSignal(int)
|
||||
stateChanged = pyqtSignal(str)
|
||||
|
||||
_button = None
|
||||
|
||||
def __init__(self, runnable, parent=None):
|
||||
QThread.__init__(self, parent)
|
||||
self._callable = runnable
|
||||
|
||||
def connectProgressBar(self, progress_bar: QProgressBar):
|
||||
self.progressChanged.connect(progress_bar.setValue)
|
||||
self.rangeChanged.connect(progress_bar.setRange)
|
||||
progress_bar.setTextVisible(True)
|
||||
|
||||
|
||||
def connectButton(self, button: QPushButton):
|
||||
self._button = button
|
||||
self._button.clicked.connect(self.start)
|
||||
|
||||
def connectStatusBar(self, statusbar: QStatusBar):
|
||||
self.stateChanged.connect(lambda val: statusbar.showMessage(val))
|
||||
|
||||
def run(self):
|
||||
if self._button:
|
||||
self._button.setEnabled(False)
|
||||
ret = self._callable(self)
|
||||
self._button.setEnabled(True)
|
||||
self.finished.emit(ret[0], ret[1])
|
||||
Reference in New Issue
Block a user