Russian Qt Forum
Сентябрь 30, 2024, 22:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicsLayout [РЕШЕНО]  (Прочитано 3561 раз)
vitalka
Гость
« : Февраль 28, 2012, 12:21 »

Есть класс, который наследуется от QGraphicsLayout. Возникла проблема в изменении размеров итемов Layoutа. То есть размеры самих итемов я меняю, но Layout их не использует, а берет старые из кэша. В какой то мере эту проблему мне удалось обойти, подставляя в классе нужные размеры, однако оказалось что в некоторых случаях итемы с новыми размерами перерисовываются некорректно, так как почему то используются старые прямоугольники.
Может кто подскажет, как в QGraphicsLayout корректно сообщить что размеры итемов уже недействительны и пора их менять на новые?
« Последнее редактирование: Февраль 29, 2012, 05:14 от vitalka » Записан
Bepec
Гость
« Ответ #1 : Февраль 28, 2012, 12:23 »

Какой нибудь reset или update или repaint?

Честно - незнаю Улыбающийся
Записан
vitalka
Гость
« Ответ #2 : Февраль 28, 2012, 12:26 »

Какой нибудь reset или update или repaint?
Пробовал, не помогло. (
Записан
vitalka
Гость
« Ответ #3 : Февраль 28, 2012, 12:32 »

Я так полагаю, что дело не в перерисовке, а в кэше, который хранит размеры итемов. Вот никак не могу понять ка этот кэш сбросить.
Записан
_OLEGator_
Гость
« Ответ #4 : Февраль 28, 2012, 14:37 »

Попробуйте вызывать в месте изменения размера айтема:
Код
C++ (Qt)
void QGraphicsItem::prepareGeometryChange () [protected]
Записан
vitalka
Гость
« Ответ #5 : Февраль 29, 2012, 05:14 »

Попробуйте вызывать в месте изменения размера айтема:
Код
C++ (Qt)
void QGraphicsItem::prepareGeometryChange () [protected]
Нет, это не помогло.

Однако вопрос решился случайно.
Я после изменения параметров вызывал
Код:
layout->updateGeometry();
update(rect());
как только удалил update(rect()); сразу все начало работать нормально. Странно....
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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