Russian Qt Forum
Октябрь 23, 2018, 07:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как делать виджеты неивдимыми по мере скроллинга?  (Прочитано 659 раз)
ksk-
Самовар
**
Offline Offline

Сообщений: 166



Просмотр профиля
« : Июль 27, 2018, 08:38 »

Всем привет. Ситуация следующая: Есть QScrollArea, в ней довольно большое число виджетов, в каждом из которых происходит весьма интенсивная и дорогая движуха. Разумно прекращать эту движуху пока виджет невидим. Теперь вопрос: Можно ли как-то явно сделать виджет невидимым после того, как он был целиком и полностью спрятан по мере скроллинга?


Вариант с заменой ScrollArea на что-то более подходящее нежелателен, но допустим.
« Последнее редактирование: Июль 27, 2018, 08:43 от ksk- » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5684


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июль 27, 2018, 10:56 »

А разве нельзя реагировать на отсутствие paintEvent?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ksk-
Самовар
**
Offline Offline

Сообщений: 166



Просмотр профиля
« Ответ #2 : Июль 27, 2018, 12:34 »

Можно попробовать. Но как зафиксировать сам факт отсутствия paintEvent?
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 3950



Просмотр профиля
« Ответ #3 : Июль 27, 2018, 12:45 »

А я бы смотрел на обратный вариант: при любом изменении положения видимой области ScrollArea пробегался по всем дочерним виджетам и говорил им виден он или нет.
Записан
ksk-
Самовар
**
Offline Offline

Сообщений: 166



Просмотр профиля
« Ответ #4 : Июль 31, 2018, 07:18 »

А я бы смотрел на обратный вариант: при любом изменении положения видимой области ScrollArea пробегался по всем дочерним виджетам и говорил им виден он или нет.

Это решение оказалось наиболее простым. Спасибо. ) Только явно виджеты лучше не скрывать, ибо они так и останутся скрытыми. Лучше просто останавливать отрисовку у виджета.
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 3950



Просмотр профиля
« Ответ #5 : Июль 31, 2018, 07:54 »

Только явно виджеты лучше не скрывать, ибо они так и останутся скрытыми. Лучше просто останавливать отрисовку у виджета.
Я и не предлагал их скрывать/показывать, я предлагал их уведомлять, тогда каждый виджет сможет выполнить необходимые для семя действия в зависимости от своей видимости.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.047 секунд. Запросов: 22.