سؤال

أنا في حيرة من أمري بشأن السحب والإفلات في wxPython (ولكن ربما تتعلق هذه الأسئلة بالسحب والإفلات في أطر عمل واجهة المستخدم الرسومية الأخرى أيضًا).توفر الأطر اثنين من عمليات الاسترجاعات (OnEnter وOnDragOver) التي يُزعم أنها تسمح لي بإبلاغ النظام ما إذا كان موضع الماوس الحالي مكانًا صالحًا لإسقاط كل ما يتم سحبه.من خلال هذه الطرق يمكنني إرجاع wx.DragNone وwx.DragCopy وما إلى ذلك.ما يحيرني هو أنه من خلال هذه الطرق لا يُسمح لي بالاتصال بـ GetData، مما يعني أنه لا يُسمح لي بفحص البيانات التي يسحبها المستخدم.إذا لم أتمكن من رؤية البيانات، فكيف من المفترض أن أعرف ما إذا كان من المقبول أن يسقط المستخدم هنا؟

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

المحلول

أحد الحلول، وهو اختراق ذو فائدة محدودة، هو أنه عند بدء السحب، قم بتخزين البيانات المسحوبة في مرجع عام أو ثابت في مكان ما.بهذه الطريقة، في معالجات OnEnter وOnDragOver، من الممكن الحصول على مرجع للبيانات التي يتم سحبها.وهذا بالطبع مفيد فقط لعمليات السحب داخل نفس التطبيق (نفس مثيل التطبيق، في الواقع).

نصائح أخرى

لا توجد طريقة لرؤية البيانات المسحوبة OnEnter و OnDragOver طُرق.

الحل الوحيد الذي وجدته هو تخزين العنصر المسحوب في متغير مثيل يمكن قراءته بعد ذلك داخل هذه الطرق.

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