wxPython Verzeichniswechsel

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Pyt_new
User
Beiträge: 2
Registriert: Sonntag 2. November 2008, 15:22

Also ich beginne gerade Python kennenzulernen und habe schon so einige Aufgaben gelöst aber bei folgender Aufgabe fällt mir Nichts ein :

Code: Alles auswählen

import wx    
import os

def GetFileList_p(Ext_spl):
      DList_o = []
   for FileName_s in os.listdir("."):
      (root, ext) = os.path.splitext(FileName_s)
      if (os.path.isfile(FileName_s)) and (ext == '.txt'):
         DList_o.append(FileName_s)
   for DictoName_d in os.listdir(""):
      (root, ext) = os.path.splitext(DictoName_d)
      if (os.path.isdir(DictoName_d)):
         DList_o.append(DictoName_d)
   return DList_o

class ListBoxFrame(wx.Frame):

   def __init__(self):
      wx.Frame.__init__(self, None, -1, 'List Box Example', size=(250, 200))
      panel = wx.Panel(self, -1)
  
            
      self.ContentLabel = wx.TextCtrl(panel, -1, size=(100,120), pos=(110, 20), style=wx.TE_MULTILINE)
      sampleList = GetFileList_p('.txt')
      self.listBox = wx.ListBox(panel, -1, (20, 20), (80, 120), sampleList, wx.LB_SINGLE)
      if len(sampleList) > 0:
         self.listBox.SetSelection(0) 
      self.Bind(wx.EVT_LISTBOX_DCLICK, self.OnDClick_file, self.listBox)
            
   def OnDClick_file(self, event):
#wie kann ich hier als event-handling 
#einen verzeichniswechsel implementieren?

      self.ContentLabel.Clear()
      FILE = open(self.listBox.GetStringSelection(), "r") # opening file (reading)
      self.ContentLabel.write(FILE.read())
      FILE.close()
Den Großteil der Aufgabe habe ich gelöst, das Programm läuft auch soweit ... jetzt soll aber noch ermöglicht werden durch einen Doppelklick auf ein Verzeichnis, in dieses zu wechseln. Also es befinden sich verzeichnisse und txt -Dateien in der Datei ... ich finde dazu leider auch kein Beispiel ... :cry:
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Anmerkungen:
1. ext_spl nicht verwendet
2. Einrückungsfehler Zeile 5
3. Zeile 11 unnötig
4. Namenskonventionen aus PEP8 nicht beachtet

Lösungsvorschlag:
1. get_file_list sollte als Argument auch das zu durchsuchende Verzeichnis erhalten.
2. In der Liste sollte der komplette Pfad gespeichert werden.
3. In on_dclick_file überprüfen, ob Selection Datei oder Verzeichnis ist
4. Bei Datei Deine Lösung
5. Bei Verzeichnis Liste für neues Verzeichnis aktualisieren
6. Da die Aktualisierung in 2 Methoden erfolgt, sollte diese in eine eigene Methode ausgelagert werden

Viel Spaß bei der Implementierung
MfG
HWK
Pyt_new
User
Beiträge: 2
Registriert: Sonntag 2. November 2008, 15:22

Danke für deine Hilfe! :D Werde das fertige Prog noch posten ...
Antworten