![]() |
|
|
![]()
|
|
| becks |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Добрый день! На графической сцене QGraphicsScene есть довольно большое количество (несколько десятков тысяч) айтемов и бывает нужно бОльшую часть из них перекрасить в серый цвет, в крайнем случае скрыть, остальные оставить как есть (остальных обычно не больше сотни).
Со скрытием все работает очень быстро, но не нравится тем, что пользователь не видит всей картины. С перекраской боюсь все будет значительно хуже в плане скорости. Правильно понимаю, для того чтобы оставить айтемы активными на сцене и не бросающимися в глаза, единственный вариант, пройтись по каждому из них и произвести repaint? Или есть что-то быстрее, например (предлагаю из головы вариант) добавить айтемы, которые необходимо перекрасить, в группу и для этой группы сделать некоторый фон... |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Блокируй события от сцены, перекрашивай айтемы (перерисовки не будет, должно быть быстро), разблокируй и перерисуй всю сцену.
|
|||
|
||||
| becks |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
В идеале хотелось бы иметь что-то типа: 1) Изначально: ![]() 2) После перекраски: ![]() Только граф будет много больше. Плюс надо еще подумать как перекрашивть айтемы (в какой цвет). Прочитл что вроде можно умножать RGB на коэфициенты >1 для осветления. Это сообщение отредактировал(а) becks - 6.2.2013, 11:38 |
|||
|
||||
| Amp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Кстати знакомая картинка. В Gephi в режиме редактирования картинка рендерится через OpenGL - в ущерб качеству, но зато с адекватной скоростью. Сам тоже делал визуализацию графов на OpenGL. Приятного в реализации мало, профит в скорости.
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |