Hallo,
ich wuerde gern ein echtes FileDropObject erzeugen. Ich weiß nicht ob ich das richtig nenne, aber es geht darum, dass ich per Drag'n'Drop aus einer Liste in meinem Programm einen Kopiervorgang einer Datei initiieren kann.
ZB habe ich eine DateiList in meinem Programm. Ziehe ich nun ein oder mehrere ListenElement(e) von dort in den Windows-Explorer oder in einen entsprechenden GUI-DateiManager unter Linux, moechte ich die Datei dorthin kopieren. Umgedreht - also Dateien vom Dateimanager in meine Liste zu ziehen klappt schon.
Danke fuer Tipps im Voraus.
[solved] FileDropObject
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Zuletzt geändert von nkoehring am Freitag 18. April 2008, 16:04, insgesamt 1-mal geändert.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Hmm... also kann man FileDropEvents zwar auffangen aber nicht selbst ausloesen? :-/
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Hab mal eben schnell gegoogelt, mein Vorschlag:
Beim Draggen ein `wxFileDataObject` erzeugen und mittels `AddFile()` den absoluten Pfad als Unicode-String eintragen. Mich würde interessieren, was beim Droppen passiert -> also z.B. beim Loslassen im Windows Explorer.
Beim Draggen ein `wxFileDataObject` erzeugen und mittels `AddFile()` den absoluten Pfad als Unicode-String eintragen. Mich würde interessieren, was beim Droppen passiert -> also z.B. beim Loslassen im Windows Explorer.
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Es funktioniert! Ist eigentlich genau das gleiche wie sonst, nur das man eben dieses FileDataObject erzeugt und dessen AddFile-Methode verwendet.
In etwa so hier:
@Droptix: Es funktioniert dann genau so wie es sollte. Beim "droppen" ueber einem Windows-Explorer-Fenster wird die Datei dorthin kopiert.
In etwa so hier:
Code: Alles auswählen
def on_drag_listitem(self, evt):
fdata = wx.FileDataObject()
idx = -1
while True: # find all the selected items and put them in a list
idx = self.GetNextItem(
idx,
wx.LIST_NEXT_ALL,
wx.LIST_STATE_SELECTED
)
if (idx == -1):
break
fdata.AddFile(self.list.GetItemText(idx))
# Now make a data object for the item list.
data = wx.DataObjectComposite()
data.Add(fdata)
# Create drop source and begin drag-and-drop.
dropSource = wx.DropSource(self)
dropSource.SetData(data)
res = dropSource.DoDragDrop(flags=wx.Drag_CopyOnly)
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Cool, geht das auch unter Linux? Also wandelt wxPython das wxFileDataObject auch wieder zurück in ein Ding, womit das Betriebssystem was anfangen kann? Ist ja echt Klasse!nkoehring hat geschrieben:@Droptix: Es funktioniert dann genau so wie es sollte. Beim "droppen" ueber einem Windows-Explorer-Fenster wird die Datei dorthin kopiert.