@Aleksey16

Как наладить взаимодействие time.sleep и close?

Функция 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
  • Вопрос задан
  • 22 просмотра
Пригласить эксперта
Ответы на вопрос 1
Bad-Coder
@Bad-Coder
(null)
threading
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы