سؤال

في طلبي ، أريد استخدام QGraphicsItemGroup لتجميع العناصر في عنصر واحد.
لقد لعبت معها قليلاً ولم أكن متأكدًا من استخدامه لأنه عندما أرغب في التقاط الأحداث ، يتم دمج الأحداث معًا ولكني أريد التعامل مع حدث محدد مع طفل معين.
كيف يمكنني تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

تحتاج إلى الاتصال QGraphicsItemGroup::setHandlesChildEvents(false). هذا يوقف QGraphicsItemGroup محاولة التعامل مع الحدث ، وتتيح للطفل QGraphicsItemهل تعاملهم بدلاً من ذلك.

نصائح أخرى

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

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