سؤال

أنا QGraphicsItem الفرعي والطلاء المتردد.
في الطلاء ، كتبت شيئًا كهذا لوصف العنصر:

 painter->drawText("Test",10,40);

بعد مرور بعض الوقت ، أعتقد أنه قد يكون من المفيد التعامل مع العلامات بعنصر منفصل. لذلك كتبت شيئًا كهذا.

QGraphicsTextItem *label = new QGraphicsTextItem("TEST",this);
setPos(10,40);

لكن رسم "اختبار" لا يظهران في نفس المكان على الشاشة. أعتقد أن الفرق قد يكون مرتبطًا مع إحداثيات العناصر - إحداثيات المشهد. جربت كل MapFrom ... و Mapto ... مجموعات داخل واجهة QGraphicsItem ولكن لا تقدم. أريد أن تظهر الرسومات في نفس المكان على الشاشة.
الذي افتقده؟

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

المحلول

أفترض أنك تستخدم نفس حجم الخط وتكتب في كلتا الحالتين. إذا كان الفرق في الموضع صغيرًا جدًا ، فقد يكون السبب هو أن QGraphicTextItem يستخدم بعض الحشو للنص الذي يحتوي عليه. سأحاول استخدام QGraphicsSimpleTextItem الذي لن يضيف أشياء رائعة داخليًا ومعرفة ما إذا كان لا يزال لديك نفس المشكلة. نظام الإحداثيات هو نفسه إذا كنت تستخدم الرسام أو setPost بحيث لا تكون هذه هي المشكلة. إذا لم يساعد هذا ، فسوف أقترح تحديد نفس المستقيم لكلاهما لتجنب إضافته على أنه يمتلك مسافات فصل.

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