Создание миникарты рабочей области
Как можно создать миникарту (поправьте, может не так называю данный элемент) рабочей области приложения? В общем имеется план железнодорожной станции в формате SVG, который естественно не помещается целиком на экран. Необходим объект, который будет отображать план целиком в небольшом прямоугольнике внизу слева (или в любом другом месте) и второй прямоугольник будет выделять область плана, которая отображается в данный момент на экране. Возможно это называется не миникарта и поэтому я ничего не могу нагуглить. Если я действительно не так называю, то скажите по каким ключевым словам поискать. Если называю правильно, то подскажите, как такое реализовать.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
- Ora Iro
- Жел. 24, 2024, 6:38 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:40ұпай,
- Бағалау ұпайлары-8
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
Готовый пример вряд ли нагуглите.
Но реализовать можно например так: Делаете два QGraphicsView . Один будет отвечать за миникарту , а второй будет отвечать за основной вид . Соответственно две QGraphicsView нужно будет сделать.
И на миникарту и на основной вид добавляете свой SVG файл. Можно использовать для этого QGraphicsSvgItem (в pro-файле необходимо будет подключить модуль SVG - QT += svg ).
На миникарте масштабируете SVG файл, чтобы он умещался полностью, а на основном виде оставляете как есть. Далее нужно будет создать класс, наследованный от QGraphicsObject и добавить его на миникарту. Из него нужно будет сделать прямоугольник, который можно будет перемещать. Соответствено нужно будет в процентном соотношении отслеживать размер этого прямоугольника и передавать эти параметры в основной вид, чтобы управлять отображением SVG файла на основном виде. Все эти параметры передавать с помощью сигналов и слотов
Задачка объёмная сама по себе, поэтому дам вам ссылки, которые могут помочь в реализации этой задачи: