include example of how to get the required TargetEntry for drag and drop
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 42/100
- Issue-Typ
- Dokumentation
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- python
- Bereich
- documentation
Rechercherichtung
Beginne mit dem aktuellen Drag-and-drop-Tutorial und vergleiche dessen Behandlung von Drops mit dem bereitgestellten pygtk-Tutorialbeispiel. Prüfe, wie das Tutorial das Akzeptieren von Drags aus anderen Anwendungen und das Erstellen von TargetEntries erklärt; als erledigt gilt die Aufgabe, wenn es ein funktionierendes PyGObject-Beispiel oder eine gleichwertige Anleitung enthält, die beide Punkte abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I wanted to build an app which accepts drags. I looked up the drag and drop tutorial but it wasn't clear to me how I would make my app accept drags from other applications. Also, I needed to produce the necessary TargetEntries which I didn't know how to do.
The following example is ported from the pygtk tutorial but uses pygi. Maybe it's possible to include that somehow in the current tutorial.
#!/usr/bin/env python
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk
def motion_cb(wid, context, x, y, time):
Gdk.drag_status(context, Gdk.DragAction.COPY, time)
return True
def drop_cb(wid, context, x, y, time):
l.set_text('\n'.join([str(t) for t in context.list_targets()]))
context.finish(True, False, time)
return True
w = Gtk.Window()
w.set_size_request(200, 150)
w.drag_dest_set(0, [], 0)
w.connect('drag-motion', motion_cb)
w.connect('drag-drop', drop_cb)
w.connect('destroy', lambda w: Gtk.main_quit())
l = Gtk.Label()
w.add(l)
w.show_all()
Gtk.main()
- Vorherrschende Sprache
- Python
- Sterne
- 392
- Forks
- 157
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus sebp/PyGObject-Tutorial
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
sebp/PyGObject-Tutorial#229 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
sebp/PyGObject-Tutorial#219 ·
-
Missing initial stepsOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 45/100
sebp/PyGObject-Tutorial#218 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
sebp/PyGObject-Tutorial#214 ·
-
Entry show show enteredOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 52/100
sebp/PyGObject-Tutorial#210 ·
Alle Issues in sebp/PyGObject-Tutorial
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
kornia/kornia#5263 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
approved correction metadata
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
acl-org/acl-anthology#10133 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
BasedHardware/omi#20084 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug needs-acceptance wg/evaluation-quality
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
vllm-project/semantic-router#4424 ·
Maintainer antworten meist innerhalb von 1 Tag