Как вывести label с задержкой в несколько секунд? PyQt5

Рейтинг: -1Ответов: 1Опубликовано: 21.05.2023

Как я знаю, нужно использовать модуль time, но не знаю как это применить, помогите пожалуйста

Ответы

▲ 1

Плохая идея. time.sleep заморозит эвентлуп GUI вашего приложения.

Воспользуйтесь QTimer::singleShot

from PyQt5 import QtCore, QtWidgets
import sys


class MainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        super().__init__()
        self.central_widget = QtWidgets.QWidget(self)
        self.setCentralWidget(self.central_widget)
        self.lbl = QtWidgets.QLabel(self.central_widget)
        self.lbl.setText('<i>hello</i> <font color="red">amazing</font> <b>world</b>')
        self.lbl.setVisible(False)  # изначально скроем лэйбл  
        QtCore.QTimer.singleShot(2000, lambda: self.lbl.setVisible(True))  # Задржка 2000ms. Лямбда делает лэйбл видимым


if __name__ == '__main__':

    app = QtWidgets.QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec_())