الأحداث مع QGraphicsItemGroup
-
26-09-2019 - |
سؤال
في طلبي ، أريد استخدام QGraphicsItemGroup لتجميع العناصر في عنصر واحد.
لقد لعبت معها قليلاً ولم أكن متأكدًا من استخدامه لأنه عندما أرغب في التقاط الأحداث ، يتم دمج الأحداث معًا ولكني أريد التعامل مع حدث محدد مع طفل معين.
كيف يمكنني تحقيق ذلك؟
المحلول
تحتاج إلى الاتصال QGraphicsItemGroup::setHandlesChildEvents(false)
. هذا يوقف QGraphicsItemGroup
محاولة التعامل مع الحدث ، وتتيح للطفل QGraphicsItem
هل تعاملهم بدلاً من ذلك.
نصائح أخرى
أعتقد أن هذا هو الهدف من QGraphicsItemGroup
. انطلاقًا من الوثائق ، فإن هذا يهدف إلى تبسيط تحريك وتحويل عناصر متعددة مرة واحدة على سبيل المثال ، تخيل الحالة التالية: يقوم المستخدم برسم مستطيل اختيار حول عدة عناصر في التطبيق لأنه يريد تحريكها جميعًا. ربما يكون ما تريده أكثر هو إنشاء تسلسل هرمي للعناصر ، على سبيل المثال ، لديك عنصر الوالد واحد به عدة عناصر للأطفال. بهذه الطريقة ستحصل على الأحداث الفردية لكل عنصر. يمكن تحقيق ذلك عن طريق الاتصال QGraphicsItem::setParentItem()
;