Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Февраль 23, 2007, 00:32 Почему-то не отображаются наследованные элементы от QGraphicsItem:
Код:
Код:
Код:
Не отображаются элементы типа Map, а стандатные нормально. В чем дело, вроде стандартно копи-пейстом все сделал.. Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: QCasper от Февраль 23, 2007, 04:04 может быть потому что вы забыли переопределить boundingRect()?
Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Февраль 23, 2007, 18:08 Все получилось, только если наследоваться от QGraphicsRectItem, объект нельзя двигать, если от просто QGraphicsItem, то можно.
Еще вопрос такой - собираюсь рисовать на QGraphicsItem, затем всю сцену буду печатать на принтере. Рисовать буду в системе координат пикселов. А для печати мне нужно знать всю геометрию в сантиметрах, чтобы точно определить размеры элементов на бумаге. Есть ли какое-нибудь средство для этого? добавлено спустя 2 часа 4 минуты: почему-то когда рисую за пределами границ, заданных в boundingRect(), изображение не отсекается. Как-нибудь можно это сделать? добавлено спустя 7 часов 25 минут: Пока работал с QGraphicsView появились вопросы: Рисую QPainter'ом на QGraphicsItem достаточно большой и сложный объект, он постоянно перерисовывается(многие тысячи методов drawRect()), нет никакой возможности это дело ускорить?В принципе перерисовка нужна при zoom in или zoom out объекта, или каких-то существенных изменений, а при простом двигании его, или скроллинге окна заново перерисовывать необязательно. Как это можно исправить? добавлено спустя 3 минуты: Ах да и еще вопрос:) Можно ли при рисовании фигур координаты задавать не пиксельно(то есть) целые значения, а точные значения. А то при zoom in изображения размеры сильно искажаются из-за округления. Чтобы получить что-то наподобие векторной графики. Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Февраль 25, 2007, 21:45 Все-таки ответьте кто-нибудь на мои вопросы? Пожалуйста!
Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: QCasper от Февраль 25, 2007, 22:01 Цитата: "evilguard" Пока работал с QGraphicsView появились вопросы: Рисую QPainter'ом на QGraphicsItem достаточно большой и сложный объект, он постоянно перерисовывается(многие тысячи методов drawRect()), нет никакой возможности это дело ускорить?В принципе перерисовка нужна при zoom in или zoom out объекта, или каких-то существенных изменений, а при простом двигании его, или скроллинге окна заново перерисовывать необязательно. Как это можно исправить? Можно самому контролировать полную перерисовку - рисовать в определенный момент (когда требуется полная перерисовка) все это дело в пиксмап, а в методе paint только этот пиксмап отрисовывать Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Февраль 26, 2007, 19:36 хорошо, только такой вопрос, допустим я 1 раз рисую в пиксмап, потом его постоянно буду выводить в QGraphicsItem. А если я применил для всего виджета QGraphicsView метод scale(), допустим приблизил, при масштабировании Пиксмапа все линии увеличат свою толщину, то есть не достигнется эффекта векторной графики, когда изображение приближаешь-отдаляешь, и кубики не появляются, как в растровой графике.
Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Февраль 27, 2007, 21:08 Появился вопрос.
Хочу сделать заливку в QGraphicsItem. Есть вариант рисовать полигоны, залитые каким-то цветом, просто проблема в том, что алгоритм отыскания этих полигонов с учетом моей задачи очень тяжелый. Поэтому хочу сделать заливку просто попиксельно. Все будет нормально, но вопрос в том, что если применять на весь QGraphicsView метод scale(), то пиксели, которые я буду рисовать увеличатся. В общем все сводится к предыдущему вопросу: можно ли как-то отловить zoom in/zoom out, и рисовать попиксельно, и еще желательно только в той области, которая отображается на экране? Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Февраль 28, 2007, 18:28 up!
Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Март 04, 2007, 09:07 Проблема так и не решена. Если кэшировать изображение QGraphicsItem в Пиксмап, как быть при применении метода QGraphicsView::scale()? Чтобы изображение нормально перестроилось в новом масштабе.
Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Март 06, 2007, 09:20 поднимаю топик :) надоело уже никто не отвечает :)
Название: QT 4.2.2 Опять глупый вопрос. Теперь по QGraphicsItem Отправлено: evilguard от Март 10, 2007, 18:49 Все-таки нашел то что мне нужно: свойство QGraphicsView::CacheMode
view.setCacheMode(QGraphicsView::CacheBackground); Но почему-то оно не работает, мой большой объект QGraphicsItem не кэшируется. |