Russian Qt Forum
Июля 06, 2025, 14:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: можно ли ограничить размер QGraphicsScene ?  (Прочитано 4562 раз)
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.026 секунд. Запросов: 18.