Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 30.09.2011, 09:42
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Имеется сцена с достаточно большим количеством элементов. Под виндой при определенных ситуациях стали наблюдать дикие тормоза.При внимательном наблюдении выяснилось, что при смене фокуса на главном окне cpu грузится по-полной. Причем никакой перерисовки в это время не делается. Т.е. поднимаем диалог и тачка встаёт в ступор! При дальнейших раскопках выяснилось, что при изменении фокуса top-level окна QGraphicsScene::event() вызывает для каждого видимого элемента QGraphicsItem::sceneEvent(). Причём сцена по сути read-only, т.к. никакая обработка событий для отдельно взятого элемента не требуется. Получается, что публичными средствами API запретить такое безобразие никак нельзя. Единственным решением оказалось перегрузить QGraphicsScene::event(). Абсолютно непонятна такая политика троллей. И что интересно, непонятно, почему так всё проседает именно под виндой. Под линуксом всё гладко. Пробежался по исходникам и ничего platform-specific не обнаружил. У кого есть мысли насчёт всего этого?
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
Графа национальность - ненужная фигня! Guest Новый архив 3 1 10.03.2012 19:53
Ненужная вещь у вас дома Guest Четвертый архив 4 07.03.2012 22:46
ненужная resync на RAID 5? Guest Новый архив 2 0 29.09.2011 04:16
Ненужная любовь Guest Второй архив вопросов и ответов 0 18.04.2011 06:21
Ненужная... Guest Третий архив вопросов и ответов 3 02.04.2011 22:38



© www.otvetnemail.ru - Форум вопросов и ответов.