سؤال

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

سيؤدي إطلاق المعدل إلى وضع المؤشر (غير المرئي سابقًا) إلى النقطة الأصلية: هذا هو منع العنصر "القفز" إلى الوضع الأفقي الجديد للماوس بعد ذلك, ، وهي مشكلتي الرئيسية.

ليس لدي أي فكرة عن كيفية تنفيذ هذا في QT4 لا يتضمن القيام بأشياء مروعة مثل:

  • عندما يتم الضغط على المعدل ، قم بتخزين موضع الماوس الحالي
  • قم بتبديل المؤشر إلى صورة نقطية لا شيء
  • ارسم بطريقة ما مؤشر مزيف في المكان الأصلي (!؟)
  • احذف المؤشر المزيف وقم بتبديل موضع الماوس مرة أخرى عند الانتهاء

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

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

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

المحلول

ماذا عن استخدام مرشح الحدث للقبض على QMouseevents ، في حين أن هذا يحدث؟

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