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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Подскажите как реализовать  (Прочитано 2676 раз)
qwyllum
Гость
« : Декабрь 25, 2012, 14:50 »

Пишу прообраз будущего редактора карт. Пока стоит задача добавления фонов. Т.е. нужно размещать множество рисунков, изменять их размер, угол поворота и т.п. В связи с этим возник вопрос

1. Как сделать окно свойств, вроде тех, что в QT Designer, где описываются свойста элемента? Вообще, что-то похожее можно сделать в Table View, но можно ли туда добавить выпадающий список или кнопку, как это сделано в свойствах текста метки, когда при нажатии на кнопку [...] открывается редактор для расширенного редактирования текста?

2. Что использовать для отрисовки фонов? Сейчас я использую QImage, но возможно есть более лучшие решения по производительности?

3. Как регулировать порядок прорисовки фонов, чтобы выбирать, какой фон будет отображаться поверх какого?

Огромное спасибо!
Записан
Bepec
Гость
« Ответ #1 : Декабрь 25, 2012, 15:50 »

QGraphicsView вам в руки, QGraphicsScene вам на виджет, QGraphicsItem вам в переопределение.

Почитайте об этом в ассистенте, посмотрите примеры.
Записан
carrygun
Гость
« Ответ #2 : Декабрь 26, 2012, 08:30 »

По первому пункту подойдет Qt Property Browser.
Записан
Dancing_on_water
Гость
« Ответ #3 : Декабрь 26, 2012, 09:21 »

Как сказали используй QGraphicsScene и QgraphicsView. И да, их переопределять не надо, пойдут стандартные.

2)Чтоб добавить фоновый рисунок, тебе нужно запихнуть QImage в QGraphicsPixmapItem.
3)Наложение объектов в QgraphicsScene реализуется через zValue item-а.

P.S. Если охота заморочиться, то openGl в зубы. Да, кстати, возможно стоит попробовать использоваться QGlWidget в качестве VIewPort-а для QGraphicsView
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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