كيفية تحديد QGraphicsItem دون اختيار مجموعة كاملة (التي ينتمي إليها هذا العنصر)

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

  •  27-09-2019
  •  | 
  •  

سؤال

أتساءل عما إذا كان من الممكن تحديد العنصر الذي ينتمي إلى مجموعة واحدة ، دون اختيار مجموعة كاملة.

ما أحاول صنعه هو مجموعة من العناصر ، يمكن نقلها (يتم نقل جميع العناصر معًا) ولكن لا يمكن نقل أي منها بشكل فردي. لكنني أريد أيضًا أن أكون قادرًا على تحديد عناصر داخل هذه المجموعة ثم القيام بشيء معهم ، مثل إعادة ترتيب ، حذف ، تغيير لونها ، إلخ.

المشكلة الأخرى هي ، يمكن أن يكون هناك مجموعة من المجموعات. أتمنى أيضًا أن أكون قادرًا على اختيار هذه المجموعات داخل المجموعة الأم. كنت أفكر في أن هذا قد يكون مشكلة ، لأننا غير قادرين على تحديد أي مجموعة من المستخدمين الذين يرغبون في اختياره. لأغراض العرض التوضيحي ، دعنا نقول أن لدينا مشهد رسم يتكون من العناصر التالية:

المجموعة A التي تحتوي على المجموعة B. تحتوي المجموعة B على 3 أسطر. إذا قمت بالضغط على نقر مزدوجًا على المجموعة A ، فعندئذٍ أتمكن من تحديد المجموعة B. إذا قمت مرة أخرى بالضغط على نقر مزدوجًا على B ، فعندئذٍ أتمكن من تحديد الخطوط داخل المجموعة B. المشكلة هي أنه ليس لدي أي فكرة عن كيفية القيام بذلك ، لأن كل الاختيار يتم توجيهه إلى الوالدين ، ومن العودة إلى جميع أطفالها.

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

المحلول

لا يمكنك استخدام QGraphicsItemGroup للقيام بذلك لأن اختيار عنصر واحد في مجموعة Automaticaly يختار جميع الأطراف الأخرى للمجموعة.

سأقوم بدراسة QGraphicsItem الفرعية لإنشاء فئة "RootItem". سوف تحتوي هذه الفئة على قائمتين. إحداها قائمة من QGraphicsItems العادية التي تشكل العناصر المرئية للمجموعة نفسها ، الوالدين لهذا الجذر. القائمة الأخرى هي من الجذرات الأخرى التي يتم وضعها في هذه القائمة (مثل المجموعة ب).

ستحتاج فقط إلى التأكد من التحكم بعناية عن العناصر التي يمكن اختيارها في أي وقت وكيف تنتشر التفاعلات بين العناصر.

أتمنى أن يساعدك هذا.

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