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




Είμαι λίγο μπερδεμένος με drag and drop σε wxPython (αλλά ίσως αυτό ερωτήματα σχετίζεται με drag and drop σε άλλα πλαίσια GUI, όπως επίσης). Τα πλαίσια προσφέρει μερικές επιστροφές κλήσεων (OnEnter και OnDragOver) που επιτρέπουν υποτίθεται μου να ενημερώσουν το σύστημα εάν η τρέχουσα θέση του ποντικιού είναι ένα έγκυρο μέρος για να ρίξει ό, τι είναι αυτό που είναι να σέρνεται. Από αυτές τις μεθόδους μπορώ να επιστρέψουν wx.DragNone, wx.DragCopy, κλπ Αυτό που με διαφράγματα είναι ότι μέσα από αυτές τις μεθόδους δεν μου επιτρέπεται να καλέσετε GetData, το οποίο σημαίνει ότι δεν μου επιτρέπεται να εξετάζει τα δεδομένα που ο χρήστης σέρνει. Αν δεν μπορώ να δω τα δεδομένα, πώς θα έπρεπε να ξέρω αν είναι ΟΚ για το χρήστη να πέσει εδώ;
Μια λύση, η οποία είναι ένα hack περιορισμένης χρησιμότητας, είναι όταν ξεκινά μια έλξη, την αποθήκευση των δεδομένων έσυραν σε μια παγκόσμια ή στατική αναφοράς κάπου. Με αυτό τον τρόπο, στην OnEnter και OnDragOver χειριστές, είναι δυνατόν να πάρετε μια αναφορά στα δεδομένα που σέρνεται. Αυτό είναι φυσικά μόνο χρήσιμα για σέρνει μέσα στην ίδια εφαρμογή (την ίδια παρουσία της εφαρμογής, στην πραγματικότητα).
Συχνά αυτό επιτυγχάνεται με τη χρήση [«Driven δεδομένων Συνδρομές»](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , αλλά αυτή η λειτουργία είναι διαθέσιμη μόνο σε ορισμένες εκδόσεις του SQL: Enterprise και Business Intelligence, αλλά όχι στο πρότυπο.


Έτσι, υπάρχει μια σειρά από δημιουργικές λύσεις. Αλλά δεν μου αρέσει κάποια από αυτές, και απαιτούν ένα δίκαιο κομμάτι της εργασίας έξω από SSRS.


Οι λύσεις που έχω δει περιλαμβάνουν: Δημιουργία της εγγραφής και στη συνέχεια απενεργοποίηση ή επιτρέπουν την εργασία SQL που στέλνει τη συνδρομή (που προσδιορίζονται από GUID.)


Δημιουργήστε ένα .exe .NET περιτύλιγμα για να χειριστεί την αποστολή του email. Μπορεί να εκτελέσετε το ερώτημα πρώτα να δούμε πόσα επέστρεψε σειρές, και στη συνέχεια, αν χρειαστεί, να δημιουργήσει την έκθεση και να συμπεριληφθεί σε ένα email. Μόλις τελειώνεις κάθε μάθημα - εκεί που σου βγάζει τους πόντους XP - από κάτω δεξιά έχει ένα κουμπί "Συνέχεια" και από αριστερά "Επανάληψη μαθήματος". Στο "Επανάληψη μαθήματος" μπορείς να δεις όλες τις προτάσεις στις οποίες απάντησες στο συγκεκριμένο μάθημα, είτε σωστές είτε λάθος. Θα πρέπει να δώσετε περισσότερες πληροφορίες σχετικά με το περιβάλλον ανάπτυξής σας για να πάρετε μια συγκεκριμένη απάντηση.


Για παράδειγμα, με ένα C # έργο στο Visual Studio, μπορείτε να κάνετε δεξί κλικ στα Project-> Ιδιότητες και, στη συνέχεια, να συμπληρώσετε το πεδίο «Εντολή επιχειρήματα γραμμή» στην καρτέλα «Debug». Θα χρησιμοποιηθεί για να πάρει αυτό - νομίζω ότι είναι ένα bug με το παράθυρο εντοπισμού σφαλμάτων «Autos»:


[http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/eabc58b1-51b2-49ce-b710-15e2bf7e7516/](https://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/eabc58b1-51b2-49ce-b710-15e2bf7e7516/) Η προτιμώμενη μέθοδος είναι να χρησιμοποιήσετε πραγματικά την ιδιότητα υπό όρους για να τυλίξει τις κλήσεις εντοπισμού σφαλμάτων σας, μην χρησιμοποιήσετε τις οδηγίες μεταγλωττιστή. #ifs μπορεί να πάρει δύσκολες και μπορεί να οδηγήσει σε περίεργα προβλήματα κατασκευής.


Ένα παράδειγμα της χρήσης ενός υπό όρους χαρακτηριστικό είναι η εξής (σε C #, αλλά λειτουργεί σε VB.NET πολύ):



```
[ Conditional("Debug") ]
private void WriteDebug(string debugString)
{
  // do stuff
}

```

Κατά τη μεταγλώττιση, χωρίς το σετ σημαία DEBUG, κάθε κλήση προς WriteDebug θα καταργηθούν όπως υποτίθεται συνέβαινε με Debug.Write (). Από τα περαιτέρω σχόλια που έγιναν από τον συγγραφέα, που ψάχνουν για ένα Node.js ORM που λειτουργεί με δύο οδηγούς MySQL και Oracle.


Εκεί δεν φαίνεται να είναι πολλά ΝΤΥΠΑ που ταιριάζει η περιγραφή και είναι επίσης υποστηρίζονται (προειδοποίηση - βασίζονται αποκλειστικά σε λίγες αναζητήσεις του Google).


Υπάρχει μία διαπίστωσα ότι ταιριάζει με την περιγραφή αν και ακόμα φαίνεται να υποστηρίζεται ενεργά και ότι είναι knex (βλ <https://knexjs.org> ). <p>απλά χρησιμοποιήστε <a href="http://ruby-doc.org/core-1.9.3/array.html#method-i-sample"><code>array#sample</code></a> :</p><pre><code>[:foo, :bar].sample # =&gt; :foo, or :bar :-) </code></pre><p>διατίθεται σε ruby 1.9.1+. για να μπορέσετε να το χρησιμοποιήσετε με μια προηγούμενη έκδοση του ruby, θα μπορούσατε <a href="https://github.com/marcandre/backports"><code>require "backports/1.9.1/array/sample"</code></a> .</p><p>σημειώστε ότι στο ruby 1.8.7 υπάρχει κάτω από το ατυχές όνομα <code>choice</code>; μετονομάστηκε σε μεταγενέστερη έκδοση, επομένως δεν πρέπει να το χρησιμοποιήσετε.</p><p>παρόλο που δεν είναι χρήσιμη σε αυτή την περίπτωση, το <code>sample</code> δέχεται ένα όρισμα αριθμού σε περίπτωση που θέλετε μια σειρά διακριτών δειγμάτων.</p> Έχεις κάνει το τεστ από το λινκγομάγαζο να δεις το σκορ σου; Το τεστ εξετάζει σε όλο το δέντρο μαζί.


Δες τις απαντήσεις μου για το τι να κάνεις αφού έχεις τελειώσει όλα τα μαθήματα [εδώ](https://www.duolingo.com/comment/13395575). τελικα κατι καταφερα χαρη στο ‘‘xorg-x11-utils xdotool’’. :slightly\_smiling\_face:

(σε wayland δεν πρεπει να δουλεψει).

ubuntu:

sudo apt install xbindkeys x11-utils xdotool

fedora:

sudo dnf install xbindkeys xorg-x11-utils xdotool

(για ποντικι με 6+ πληκτρα.)

δημιουργια ενος (κρυφου) αρχειου σ… επανέρχομαι και πάλι στο θέμα που άνοιξα.

διάβασα το παρακάτω σχετικά με το gdm στο [archwiki](https://wiki.archlinux.org/index.php/gdm#gdm_ignore_wayland_and_use_x.org_by_default):

wayland requires kernel mode setting (kms) running in order to work, and on some machines the gdm process start earlier than kms, resulting in gdm unable to see wayland and working only with [x.org](http://x.org).

προ…