Я пытаюсь выяснить, как сделать отображение между пикселями, которые я могу видеть в настоящее время в QGraphicsView, и фактическим пикселем в изображении, которое является QGraphicsItem.
Например, если мой зритель имеет размер 50x50и мое изображение составляет 100x100, затем, когда изображение загружается и остается нетронутым, 0,0 пикселя изображения соответствует 0,0 пикселя зрителя.
Теперь, если я перетаскиваю изображение вправо10 пикселей, это верхний левый 0,0 пиксель изображения, теперь в (10,0), и я могу видеть только столбцы 10-40 исходного изображения.
Кроме того, если масштабировать, чтобы уменьшить масштаб изображения, чтобы уменьшить изображение по сравнению с областью QGraphicsView, возможно, 0,0 изображения отображается на 10,0 зрителя, но 100 100 изображения могут отображаться только на40,40 в средстве просмотра, потому что я масштабировал его так мало.
Я знаю, что для QGraphicsItem есть много функций отображения, но я просто не уверен, как определить, какие части видны, и каксделать это сопоставление между Предметом, Сценой и Видом.
Спасибо за любую помощь
Для справки ... пока, что я пробовал: Получить форму элемента сопоставить фигуру сСцена, которая из сцены, используя вид, получает ограничивающий прямоугольник пути и находит верхний левый угол этого
Завершается, используя что-то вроде следующего:
QRect portRect = ui->graphicsView->viewport()->rect();
QRectF sceneRect = ui->graphicsView->mapToScene(portRect).boundingRect();
QRectF itemRect = item->mapRectFromScene(sceneRect);
QRectF isec = itemRect.intersected(item->boundingRect());
Спасибо Стивену Чу