الحصول على المربع المحيط لعنصر حجم ثابت في وجهات النظر رسومات QT

StackOverflow https://stackoverflow.com/questions/1719694

  •  19-09-2019
  •  | 
  •  

سؤال

أحتاج إلى الحصول على المربع المحيط (في مساحة المشهد) QGraphicsItemS التي لديها 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 في الخطوة الأخيرة تم إصلاح مشكلتي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top