
Είμαι λίγο μπερδεμένος με drag and drop σε wxPython (αλλά ίσως αυτό ερωτήματα σχετίζεται με drag and drop σε άλλα πλαίσια GUI, όπως επίσης). Τα πλαίσια προσφέρει μερικές επιστροφές κλήσεων (OnEnter και OnDragOver) που επιτρέπουν υποτίθεται μου να ενημερώσουν το σύστημα εάν η τρέχουσα θέση του ποντικιού είναι ένα έγκυρο μέρος για να ρίξει ό, τι είναι αυτό που είναι να σέρνεται. Από αυτές τις μεθόδους μπορώ να επιστρέψουν wx.DragNone, wx.DragCopy, κλπ Αυτό που με διαφράγματα είναι ότι μέσα από αυτές τις μεθόδους δεν μου επιτρέπεται να καλέσετε GetData, το οποίο σημαίνει ότι δεν μου επιτρέπεται να εξετάζει τα δεδομένα που ο χρήστης σέρνει. Αν δεν μπορώ να δω τα δεδομένα, πώς θα έπρεπε να ξέρω αν είναι ΟΚ για το χρήστη να πέσει εδώ;

 
wxPython: Πώς μπορώ να εξετάσει έσυραν δεδομένων OnDragOver;
============================================================



Μια λύση, η οποία είναι ένα hack περιορισμένης χρησιμότητας, είναι όταν ξεκινά μια έλξη, την αποθήκευση των δεδομένων έσυραν σε μια παγκόσμια ή στατική αναφοράς κάπου. Με αυτό τον τρόπο, στην OnEnter και OnDragOver χειριστές, είναι δυνατόν να πάρετε μια αναφορά στα δεδομένα που σέρνεται. Αυτό είναι φυσικά μόνο χρήσιμα για σέρνει μέσα στην ίδια εφαρμογή (την ίδια παρουσία της εφαρμογής, στην πραγματικότητα).

 

Δεν υπάρχει κανένας τρόπος για να δείτε έσυραν δεδομένα `OnEnter`και `OnDragOver`μεθόδους.


Η μόνη λύση που βρήκα είναι να αποθηκεύσει το συρθεί το αντικείμενο σε κάποιο βαθμό μεταβλητή που είναι τότε αναγνώσιμη στο εσωτερικό αυτών των μεθόδων.

 