Russian Qt Forum
Март 28, 2024, 22:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Масштабирование сцены и элемента  (Прочитано 3892 раз)
fdfsdfgjfh
Гость
« : Март 26, 2015, 21:28 »

масштабирование сделал во view:
Код:
setscale(value, 1);

Надо сделать масштабирование только по x

элементы наследуются от qgraphicsitem
там делаю
Код:
painter->drawtext  // текст добавляю в середину элемента(прямоугольник)
painter->drawRoundRect

сейчас при масштабировании текст растягивается и размазывается
и углы RoundRect вытягиваются, становится более острым.

такое поведение, думаю, очевидное
т.к. растягиваем по x

как правильно реализовать масштабирование? в какую сторону смотреть
Записан
Nidxogg
Гость
« Ответ #1 : Март 26, 2015, 23:50 »

QGraphicsItem::ItemIgnoresTransformations
Записан
fdfsdfgjfh
Гость
« Ответ #2 : Март 27, 2015, 18:20 »

QGraphicsItem::ItemIgnoresTransformations

А это не правильно, т.к. при мастабирование сцены объект останется таким же, мне надо объект увеличить а текст оставить
Записан
AzazelloAV
Гость
« Ответ #3 : Март 27, 2015, 19:39 »

масштабирование сделал во view:
Код:
setscale(value, 1);

Надо сделать масштабирование только по x

элементы наследуются от qgraphicsitem
там делаю
Код:
painter->drawtext  // текст добавляю в середину элемента(прямоугольник)
painter->drawRoundRect

сейчас при масштабировании текст растягивается и размазывается
и углы RoundRect вытягиваются, становится более острым.

такое поведение, думаю, очевидное
т.к. растягиваем по x

как правильно реализовать масштабирование? в какую сторону смотреть

Приведите код, очень сложно судить.
Записан
fdfsdfgjfh
Гость
« Ответ #4 : Март 27, 2015, 21:36 »

к сожалению не могу....

интересует какая правильная логика работы
Записан
AzazelloAV
Гость
« Ответ #5 : Март 27, 2015, 23:12 »

к сожалению не могу....

интересует какая правильная логика работы

Да мы не будем смеятся.
Это же, конечно, ирония. Вы можете псевдокод написать в виде пару строк, указав метод в котором он вызывается.

Хотя, вроде бы указали......

Попытаюсь отгадать. Мы текст не хотим трогать, всё остальное да.

painter->save();
что-то с рамкой
painter->setWorldMatrixEnabled(false); //оставить всё как есть, как рисуем, все транфсормации побоку.
что-то с текстом
painter->restore();



« Последнее редактирование: Март 27, 2015, 23:30 от AzazelloAV » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.186 секунд. Запросов: 20.