Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: vorotislav от Июль 20, 2016, 09:04



Название: 2 GraphicsView + 1 GraphicsScene
Отправлено: vorotislav от Июль 20, 2016, 09:04
Доброго времени суток.
Есть 2 GraphicsView и 1 GraphicsScene.
Идея сделать следующее.
1 большая вьюха, с которой работаю, добавляю\расставляю элементы и все дела.
2 вьюха маленькая, в углу экрана, и должна быть в виде карты.
С масштабированием через задание QMatrix более менее разобрался, во второй вьюхе вся сцена помещена. А теперь хочу сделать на второй вьюхе нечто ввиде прямоугольника, который бы показывал, на что сейчас смотрит основная вьюха. Ну и соответственно еще чтоб при прикротке сцены, этот прямоугольник так же бы смещался. И желательно сделать наоборот: захватить прямоугольник, двигать и в основном представлении так же бы менялось положение.
Подскажите, куда двигаться, с чего начинать?
Заранее благодарен.


Название: Re: 2 GraphicsView + 1 GraphicsScene
Отправлено: Racheengel от Июль 20, 2016, 12:10
класс QSint::ScrollPanner

https://www.linux-apps.com/p/1132148/



Название: Re: 2 GraphicsView + 1 GraphicsScene
Отправлено: GreatSnake от Июль 20, 2016, 12:17
А теперь хочу сделать на второй вьюхе нечто ввиде прямоугольника, который бы показывал, на что сейчас смотрит основная вьюха. Ну и соответственно еще чтоб при прикротке сцены, этот прямоугольник так же бы смещался. И желательно сделать наоборот: захватить прямоугольник, двигать и в основном представлении так же бы менялось положение.
Подскажите, куда двигаться, с чего начинать?
Рамку рисовать в QGraphicsView::drawForeground(), двигать в QGraphicsView::mousePressEvent()/mouseMoveEvent().


Название: Re: 2 GraphicsView + 1 GraphicsScene
Отправлено: Bepec от Июль 20, 2016, 12:50
А можно не париться с двумя View, а сделать свой виджет. С картинкой на фоне и прямоугольником - перерасчитываемым по координатам сцены. И это будет менее ресурсозатратным и более простым решением :)


Название: Re: 2 GraphicsView + 1 GraphicsScene
Отправлено: vorotislav от Июль 21, 2016, 08:43
Всем спасибо! Буду пробовать.