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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: 1 QGraphicsScene и 2 QGraphicsView  (Прочитано 3022 раз)
Greenvich
Гость
« : Июнь 06, 2012, 11:13 »

Добрый  день!

Есть сцена. На ней присутствуют несколько item'ов(пока 3 штуки). Создал 2 view для использования одного, как мини карту(minimap), а другого - полноценную(map).

Задача: Необходимо обозначить границы отображения полноценной карты, на мини карте.

Решение: Добавить квадрат и передавать в него координаты углов из map, переведенных в систему координат сцены:

Код
C++ (Qt)
QRect rectView = map->viewport()->geometry();
QPolygonF poly = map->mapToScene(rectView);
 
map->scene()->addPolygon(poly, QPen(QColor(153, 218, 255)));
 

Вопрос: Как убрать отображение "poly" на полноценной карте. Т.е. на одном view показывать все элементы, на другом только некоторые.

P.S. решение нужно именно в таком виде, потому как далее на полноценной карте будет, например, 20 item'ов, а на мини -  3-5.

Заранее благодарен!
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Июнь 06, 2012, 11:41 »

Вопрос: Как убрать отображение "poly" на полноценной карте.
Рамку на 2-м вью можно отрисовывать в его перегруженном QGraphicsView::drawForeground().

Цитировать
P.S. решение нужно именно в таком виде, потому как далее на полноценной карте будет, например, 20 item'ов, а на мини -  3-5.
Со сценой обычно так не работают. Чтобы получить такое не простое решение придётся много чего перегружать.
Записан

Qt 5.11/4.8.7 (X11/Win)
Greenvich
Гость
« Ответ #2 : Июнь 06, 2012, 11:47 »

Со сценой обычно так не работают. Чтобы получить такое не простое решение придётся много чего перегружать.

Тогда может быть, делать 2 сцены? Одну для мини карты, другу для полноценной?
Записан
iroln
Гость
« Ответ #3 : Июнь 06, 2012, 13:18 »

У себя в проекте я сделал две сцены. Но возникает другая проблема - синхронизация объектов между двумя сценами. Я на это дело вообще забил, то есть на Overview (миникарта) у меня вообще графиеские объекты не показываются). А так давно уже всем известно, что архитектура: 1 сцена - N видов не работает. Улыбающийся
Записан
Greenvich
Гость
« Ответ #4 : Июнь 06, 2012, 14:08 »

Спасибо за ответы. Сделал 2 сцены и 2 вида. Думаю поможет. Пока нормально отрабатывает, но это еще каркас  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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