PyQt5: стили динамически создаваемых виджетов не применяются сразу при переключении страниц.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 PyQt5: стили динамически создаваемых виджетов не применяются сразу при переключении страниц.

Сообщение Anonymous »

Я работаю над приложением PyQt5, в котором динамически создаю виджеты для отображения информации о расписании. Метод update_days обрабатывает дни выбранной недели, определяет, является ли каждый день активным или неактивным, в зависимости от периода подписки, а затем создает стилизованные виджеты для каждого дня с помощью метода create_day_widget.
Однако , я заметил проблему: при переходе на страницу расписания стили этих виджетов не применяются сразу. Страница отображается, но стили обновляются с заметной задержкой. Это создает эффект мерцания: все дни сначала кажутся активными, а затем отключаются по мере применения стилей.
Вот соответствующие фрагменты кода:
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]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»