crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Немасштабируемые элементы в QGraphicsView
Sky
  опции профиля:
сообщение 10.5.2008, 14:54
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 10.5.2008
Пользователь №: 170

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть QGraphicsScene, содержащая некоторое количество элементов и отображающаяся в QGraphicsView.
Необходимо, чтобы некоторые из элементов не меняли размер, при изменении масштаба в QGraphicsView.
Переопределение paintEvent не помогает - все, что отрисовывается в нем, не показывается, а в консоли "QPainter::begin: Widget painting can only begin as a result of a paintEvent".
Пока сделал таким образом, что при изменении масштаба в QGraphicsView меняется масштаб отдельных элементов в противоположную сторону. Но во-первых это криво, а во-вторых текст при этом отрисовывается некорректно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.5.2008, 14:59
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Sky @ 10.5.2008, 18:54) *
"QPainter::begin: Widget painting can only begin as a result of a paintEvent".

ну выходит, что paintEvent не начинается, я так понимаю это из-за двойной буферизации.
Наверно надо ловить событие изменения масштаба.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sky
  опции профиля:
сообщение 10.5.2008, 15:08
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 10.5.2008
Пользователь №: 170

Спасибо сказали: 0 раз(а)




Репутация:   0  


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


В самом QGraphicsView такого события вроде нет.
Я меняю масштаб по событию wheelEvent, соответственно этот момент отлавливаю, только что дальше делать? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.5.2008, 15:09
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


я честно говоря, с рисованием и т.п. вещами в Qt еще не занимался.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sky
  опции профиля:
сообщение 10.5.2008, 15:54
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 10.5.2008
Пользователь №: 170

Спасибо сказали: 0 раз(а)




Репутация:   0  


Все оказалось проще некуда:
item->setFlag(QGraphicsItem::ItemIgnoresTransformations, true); :D :D :D
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.5.2008, 15:59
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ну вот сам нашел, а я буду знать :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 17:54