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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: можно ли ограничить размер QGraphicsScene ?  (Прочитано 4417 раз)
ZiZoid
Гость
« : Ноябрь 23, 2011, 18:33 »

Здравствуйте, товарищи. В документации к Qt4.7 в статье QGraphicsScene Class Reference, сказано что sceneRect - это  "...rectangle that grows when items are added to or moved in the scene, but never shrinks."  Так вот, скажите пожалусто, можно ли как то ограничить разрастание сцены,  так чтобы movable items можно было перемещать не бесконечно далеко, а  только в пределах отображаемой в QGraphicsView области?
Записан
alexman
Гость
« Ответ #1 : Ноябрь 23, 2011, 22:24 »

Можно контролировать перетаскивание самому.
Записан
ZiZoid
Гость
« Ответ #2 : Ноябрь 24, 2011, 01:15 »

А как это лучше сделать? какие события перехватывать?
Записан
alexman
Гость
« Ответ #3 : Ноябрь 24, 2011, 08:36 »

У сцены (или айтема) переопределить необходимые protected-методы, либо попробовать installEventFilter.
Записан
iroln
Гость
« Ответ #4 : Ноябрь 24, 2011, 12:12 »

Разрастание сцены ограничивается методом setSceneRect(). Ставишь, например scene->setSceneRect(0, 0, 100, 100) и сцена будет иметь фиксированный размер 100x100.

Ограничивать перемещение элементов тоже бывает полезно, это можно сделать, например, внутри класса элемента, например в обработчике события mouseMoveEvent или itemChange.

Вот, тема есть:
http://www.prog.org.ru/index.php?topic=4008.msg93442;topicseen#msg93442
« Последнее редактирование: Ноябрь 24, 2011, 12:18 от iroln » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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