ich suche verzweifelt ein Modul, was es mir ermöglicht
einen Explorer in mein Programm einzubinden. Es sollte auch + und -
Zeichen verwenden um den Baum ein- bzw auszufahren. Hatte
gehofft, das es hierfür schon etwas fertiges gibt.

Gruss prosta
Hallo prosta,pr0stAta hat geschrieben:Halli Hallo,
ich suche verzweifelt ein Modul, was es mir ermöglicht
einen Explorer in mein Programm einzubinden. Es sollte auch + und -
Zeichen verwenden um den Baum ein- bzw auszufahren. Hatte
gehofft, das es hierfür schon etwas fertiges gibt.
Gruss prosta
Code: Alles auswählen
self.Bind(wx.EVT_RIGHT_UP, self.onRightClick, id=201)
Du hast das DirCtrl abgeleitet?pr0stAta hat geschrieben:*bump* :p
Die evt_handler der TreeCTRL funktionieren. Doch bringt mir das nicht
wirklich viel, da ich nur auf den Rechtsklick reagieren möchte...
verrücktFalls noch einer eine Idee hat, wäre ich sehr dankbar
gruss
Danke, freut michpr0stAta hat geschrieben:Supi Francesco, funktioniert
Nun meine definitiv letzte Frage, wenn ich mir mit
GetPath die aktuell angewählte Zeile zurückgeben lasse,
schneidet er Dateinamen bei Leerzeichen ab. Bei Pfaden übernimmt
er den kompletten Namen.
Beispiel:
c:\programme\test\hallo anstatt c:\programme\test\hallo du da.py
Code: Alles auswählen
self.browser = wx.GenericDirCtrl(self, -1, style=wx.DIRCTRL_SHOW_FILTERS, filter="All files (*.*)|*.*")
tree = self.browser.GetTreeCtrl()
tree.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivate, tree)
Code: Alles auswählen
def OnActivate(self, evt):
fn = self.getheir()
try:
st = os.stat(fn)[0]
if stat.S_ISREG(st):
self.root.OnDrop([fn])
except:
evt.Skip()
Das Problem ist auch nicht, das er die Datei nicht öffnen kann weil Leerzeichen enthalten sind, sondern weil das GetPath den falschen Pfad zurückgibt. Hier mal ein Auszug aus meinem Code wobei alles unwichtige rausgenommen wurdeIch habe c:\programme\test\hallo du da.py erstellt, und Pype öffnet es auch anstandlos.
Code: Alles auswählen
self.dir1 = wx.GenericDirCtrl(self, 201, size=(200,225), style=0)
self.dir1.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.onActivate)
Code: Alles auswählen
pfad = self.dir1.GetPath()
if os.path.isfile(pfad):
os.system(pfad)
Eigenartig:pr0stAta hat geschrieben:Das Problem ist auch nicht, das er die Datei nicht öffnen kann weil Leerzeichen enthalten sind, sondern weil das GetPath den falschen Pfad zurückgibt. Hier mal ein Auszug aus meinem Code wobei alles unwichtige rausgenommen wurdeIch habe c:\programme\test\hallo du da.py erstellt, und Pype öffnet es auch anstandlos.
Hier die onActivateCode: Alles auswählen
self.dir1 = wx.GenericDirCtrl(self, 201, size=(200,225), style=0) self.dir1.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.onActivate)
Habe mir eben nochmal die aktuellste wx Version gezogen, macht allerdings keinen UnterschiedCode: Alles auswählen
pfad = self.dir1.GetPath() if os.path.isfile(pfad): os.system(pfad)
Code: Alles auswählen
def __init__(self):
...
self.dir1 = wx.GenericDirCtrl(self, 201, size=(200,225), style=0)
self.bla = self.dir1.GetTreeCtrl()
self.bla.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.onActivate)
def onActivate(self, event):
pfad = self.dir1.GetPath()
print pfad
...
Code: Alles auswählen
self.bla.Bind(wx.EVT_TREE_ITEM_ACTIVATED, lambda: self.onActivate(self.dir1.GetPath()))
def onActivate(self, event, pfad):
...
Hallo,pr0stAta hat geschrieben:Ich finde auch ein "Edit" sollte den Thread auf geändert setzen, nicht nur neue Posts aber das ganz nebenbei nur
Hoffe das du mir nochmal helfen kannst Francesco.
Habe den Fehler nämlich nun entdeckt !
Ich bilde den Fall hier mal ab:
So geht es nicht:Wenn ich mir self.dir1.GetPath() aber nun in der __init__ ausgeben lasse,Code: Alles auswählen
def __init__(self): ... self.dir1 = wx.GenericDirCtrl(self, 201, size=(200,225), style=0) self.bla = self.dir1.GetTreeCtrl() self.bla.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.onActivate) def onActivate(self, event): pfad = self.dir1.GetPath() print pfad ...
erkennt er die Leerzeichen wieder und nimmt den gesamten Namen
der Datei und trennt nicht mehr nach Leerzeichen. Nun Frage ich mich, wie man das beheben soll. Ich habe versucht, mit lambda self.dir1.GetPath() als Parameter zu übergeben, was aber irgendwie nicht klappt. Hier mein Versuch:Gruss prostaCode: Alles auswählen
self.bla.Bind(wx.EVT_TREE_ITEM_ACTIVATED, lambda: self.onActivate(self.dir1.GetPath())) def onActivate(self, event, pfad): ...
Code: Alles auswählen
lambda x: self.OnActivate(x, self.dir1.GetPath())