Ich erstelle eine kleine App muss URLs empfangen können. Wenn das Apps-Fenster geöffnet ist, sollte ich in der Lage sein, einen Link von einem Browser zu ziehen und in die App zu legen - und die App wird die URL in einer Datenbank speichern.Python GTK Drag & Drop - Get URL
Ich erstelle das in Python/GTk. Aber ich bin etwas verwirrt über die Drag-and-Drop-Funktionalität darin. Also, wie?
Einige Beispielcode per Drag/Drop (meine App nutzt ein bisschen dieses Codes) ...
import pygtk
pygtk.require('2.0')
import gtk
# function to print out the mime type of the drop item
def drop_cb(wid, context, x, y, time):
l.set_text('\n'.join([str(t) for t in context.targets]))
# What should I put here to get the URL of the link?
context.finish(True, False, time)
return True
# Create a GTK window and Label, and hook up
# drag n drop signal handlers to the window
w = gtk.Window()
w.set_size_request(200, 150)
w.drag_dest_set(0, [], 0)
w.connect('drag_drop', drop_cb)
w.connect('destroy', lambda w: gtk.main_quit())
l = gtk.Label()
w.add(l)
w.show_all()
# Start the program
gtk.main()
dass Vorsicht in die Sie haben könnten, um Rufen Sie data.get_uris() auf, wenn die Daten in Form einer uri-Liste vorliegen. Wenn Sie zum Beispiel eine Liste von Dateien von Konqueror/Nautilus an das Fenster senden und Ihre Annahme "text/uri-list" sagen, gibt get_data() für GtkSelectionData None zurück. –
Es kann ein unerwünschtes Verhalten geben, wenn wir auf das Fenster ziehen und das Fensterfenster ziehen, ohne die Maus der Beschriftung loszulassen, die den Text enthält. Das Löschen des Labels scheint mehr Sinn zu ergeben – demongolem