Однако , я заметил проблему: при переходе на страницу расписания стили этих виджетов не применяются сразу. Страница отображается, но стили обновляются с заметной задержкой. Это создает эффект мерцания: все дни сначала кажутся активными, а затем отключаются по мере применения стилей.
Вот соответствующие фрагменты кода:
update_days
Код: Выделить всё
def update_days(self, week_number, trainer_id):
buffer_layout = QGridLayout()
buffer_layout.setSpacing(15)
month_calendar = calendar.monthcalendar(self.current_date.year, self.current_date.month)
if week_number - 1 >= len(month_calendar):
print(f"Week {week_number} does not exist for the current month.")
return
days_in_week = month_calendar[week_number - 1]
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
today = datetime.date.today()
start_date = None
end_date = None
subscription_start = None
subscription_end = None
if self.subscription_data:
subscription_start = datetime.datetime.strptime(self.subscription_data.get("start_date", ""), "%d.%m.%Y").date()
subscription_end = datetime.datetime.strptime(self.subscription_data.get("end_date", ""), "%d.%m.%Y").date()
for i, day in enumerate(days):
if days_in_week[i] == 0: # Day does not belong to the current month
day_widget = self.create_day_widget(day, [], is_enabled=False)
buffer_layout.addWidget(day_widget, 0, i)
else:
day_date = datetime.date(self.current_date.year, self.current_date.month, days_in_week[i])
if start_date is None:
start_date = day_date
end_date = day_date
is_enabled = (
(subscription_start and subscription_end and subscription_start
Подробнее здесь: [url]https://stackoverflow.com/questions/79369946/pyqt5-styles-of-dynamically-created-widgets-are-not-applied-immediately-during[/url]