Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как позиционеруетса QGraphicsScene, и ее геометрический центр 
:(
    Опции темы
Izabela
Дата 1.9.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 13.2.2007
Где: Lviv

Репутация: нет
Всего: 3



Здравствуйте


Может кто-то сможет сказать относительно какова элемента размещена QGraphicsScene и где ее геометрический центр?

 smile Не могу понять.  Если не задавать  sceneRect  тогда все элементы реализованы с помощью классов-потомков класса QGraphicsItem ) рисуются относительно геометрическова центра (0,0) окна , а если указать   sceneRect тогда я не понимаю как оно работает
Код

scene = new QGraphicsScene();
    view = new PlotView();
    view->setScene(scene);
    setCentralWidget(view);


По документации ясно как работает система координат окна и примитива.  Может кто то сможет объяснить как работает сцена. 
Заранее благодарна.

--------------------
 
PM MAIL ICQ   Вверх
KL7
Дата 4.9.2009, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 7.12.2008
Где: Minsk City

Репутация: 2
Всего: 2



На случай, если не удастся вникнуть в документацию или никто из опытных qt-шников не поделится соображениями...
Сейчас как раз работаю со сценой в одном приложении... Так что вот соображения...

Если не задавать sceneRect в самой сцене, то он будет автоматически расширяться (но никак не сужаться), при появлении новых элементов (QGraphicsItem) за пределами текущего sceneRect... В противном случае автоматического обновления не будет и будет предполагаться, что твоя сцена - ето прямоугольник, описываемый полем sceneRect... попытки добавления элементов за пределами этой области не будут вызывать ошибок, но sceneRect обновлен (автоматически) не будет...

Если не задавать sceneRect во вьювере, то он будет получать свежее значение от самой сцены... если же указать, то обновления не будет и вьювер будет работать лишь с указанной частью сцены... Он будет усердно пытаться ее отображать и если сцена маленькая, то он будет проводить выравнивание сцены внутри себя по правилам, заданным в alignment, а если в него часть сцены, ограниченная sceneRect-ом не влазит, то будут появляться скролы...

Мне лично нужно, чтобы сцена динамически расширялась, но симметрично относительно вертикали, чтобы при центральном выравнивании во вьювере ось Oy моей сцены всегда отображалась по центру... Для етого я пока вручную обновляю размеры сцена по сигналу changed() - ничего лучше не придумал...

как-то так... если что-то прояснилось, то пиши, что не понятно (конкретнее), - будем разбираться =)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0649 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.