Изменение текста с течением времени
Я хочу чтобы менялся текст в label с учетом времени (не каждые 15 минут, а когда время от 6 до 9 "доброе утро", когда от 9 до 13 "хорошей работы").
Причем чтобы от с 6 до 9 в каждый день были разные надписи( пусть их будет 3 шт) "доброе утро", "удачного дня", "пусть ваш день будет прекрасным".
Помогите пожалуйста.
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QCoreApplication, Qt
from PyQt5 import QtCore, QtGui, QtWidgets
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 220)
label = QLabel('<3', self)
label.setAlignment(Qt.AlignCenter)
font = QtGui.QFont()
font.setPointSize(40)
font.setFamily("Century Gothic")
label.setFont(font)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте запустить приложение несколько раз в указанное вами время. Если вам что-то не понятно - спросите.
import sys
import random
from PyQt5.Qt import *
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self._6_9 = [
"Доброе утро.",
"Удачного дня.",
"Пусть ваш день будет прекрасным.",
]
self._9_13 = [
"Хорошей работы.",
]
hh_mm = QDateTime.currentDateTime().toString('hh:mm')
#print(f'hh_mm = {hh_mm}')
if '06:00' <= hh_mm < '09:00':
self.label.setText(random.choice(self._6_9))
elif '09:00' <= hh_mm < '13:00':
self.label.setText(random.choice(self._9_13))
def initUI(self):
self.resize(300, 220)
self.label = QLabel(self)
self.label.setAlignment(Qt.AlignHCenter | Qt.AlignTop)
self.label.setStyleSheet("background-color: #ccffbd77;")
font = QFont()
font.setPointSize(20)
font.setFamily("Century Gothic")
self.label.setFont(font)
layout = QVBoxLayout(self)
layout.addWidget(self.label, stretch=0)
layout.addWidget(QLabel(
'<h1 style="color: red;">Hello World.</h1>',
alignment=Qt.AlignCenter
), stretch=1
)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
