Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Немасштабируемые элементы в QGraphicsView
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
Sky
Есть QGraphicsScene, содержащая некоторое количество элементов и отображающаяся в QGraphicsView.
Необходимо, чтобы некоторые из элементов не меняли размер, при изменении масштаба в QGraphicsView.
Переопределение paintEvent не помогает - все, что отрисовывается в нем, не показывается, а в консоли "QPainter::begin: Widget painting can only begin as a result of a paintEvent".
Пока сделал таким образом, что при изменении масштаба в QGraphicsView меняется масштаб отдельных элементов в противоположную сторону. Но во-первых это криво, а во-вторых текст при этом отрисовывается некорректно.
Litkevich Yuriy
Цитата(Sky @ 10.5.2008, 18:54) *
"QPainter::begin: Widget painting can only begin as a result of a paintEvent".

ну выходит, что paintEvent не начинается, я так понимаю это из-за двойной буферизации.
Наверно надо ловить событие изменения масштаба.
Sky
Цитата(Litkevich Yuriy @ 10.5.2008, 15:59) *
ну выходит, что paintEvent не начинается, я так понимаю это из-за двойной буферизации.
Наверно надо ловить событие изменения масштаба.


В самом QGraphicsView такого события вроде нет.
Я меняю масштаб по событию wheelEvent, соответственно этот момент отлавливаю, только что дальше делать? :)
Litkevich Yuriy
я честно говоря, с рисованием и т.п. вещами в Qt еще не занимался.
Sky
Все оказалось проще некуда:
item->setFlag(QGraphicsItem::ItemIgnoresTransformations, true); :D :D :D
Litkevich Yuriy
ну вот сам нашел, а я буду знать :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.