Как вывести label с задержкой в несколько секунд? PyQt5
Как я знаю, нужно использовать модуль time, но не знаю как это применить, помогите пожалуйста
Источник: Stack Overflow на русском
Как я знаю, нужно использовать модуль time, но не знаю как это применить, помогите пожалуйста
Плохая идея. 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_())