Функция checkupdate работает в потоке и проверяет наличие обновлений, если обновлений нет текст "Проверка обновлений..." должен заменяться на "Обновлений нет. Запуск", ждать некоторое время, чтобы пользователь это видел, далее текущее окно закрывается и открывается основное
На самом же деле, текст не меняется, а после того как время sleep проходит - программа закрывается, текст так и не меняется
Понимаю, что от этого можно просто отказаться, но хотелось бы узнать, почему так происходит
Фрагмент кода:
class Worker(QObject):
bool_signal = pyqtSignal(bool)
def __init__(self):
super().__init__()
@pyqtSlot()
def checkUpdate(self):
# code
if current_version:
self.bool_signal.emit(True)
else:
self.bool_signal.emit(False)
class SplashScreen(QMainWindow, SetupWindow):
def __init__(self):
QMainWindow.__init__(self)
self.main = MainWindow()
self.setupUi(self)
#code
self.thread = QThread()
self.worker = Worker()
self.worker.moveToThread(self.thread)
self.worker.bool_signal.connect(self.after_search_update)
self.thread.started.connect(self.worker.checkUpdate)
self.thread.start()
self.show()
def after_search_update(self, boolean: bool):
if boolean:
self.Status_text.setText("Обновлений нет. Запуск")
# QtCore.QThread.sleep(2) пробовал использовать такой вариант
time.sleep(2)
self.close()
self.main.show()
else:
pass