الحصول على المربع المحيط لعنصر حجم ثابت في وجهات النظر رسومات QT
-
19-09-2019 - |
سؤال
أحتاج إلى الحصول على المربع المحيط (في مساحة المشهد) QGraphicsItem
S التي لديها QGraphicsItem::ItemIgnoresTransformations
مجموعة العلم.
وفقا للمستندات، تحتاج إلى استخدام qgraphicsitem :: devicetransform () للقيام بذلك. حاولت هذا:
// Get the viewport => scene transform
vp_trans = view.viewportTransform();
// Get the item => viewport transform
trans = item.deviceTransform(vp_trans);
// Get the item's bounding box in item's space
bbox = item.boundingRect();
// Map it to viewport space
bbox = trans.mapRect(bbox);
// Map it back to scene's space
bbox = vp_trans.mapRect(bbox);
ولكن هناك خطأ ما، فإن الصناديق المحيطة تبدو أصغر وبعد حق العناصر ...
المحلول
فقط اكسبت، qgraphicsview :: viewporttransform () Doc يقول "إرجاع مصفوفة أن تعريض إحداثيات ViewPort إلى إحداثيات المشهد"، ولكن في الواقع يعيد مشهد ل Viewport. تحول.
إنذار VP_TRANS في الخطوة الأخيرة تم إصلاح مشكلتي.
لا تنتمي إلى StackOverflow