2017-08-21 1 views
0

Nach dem Erstellen eines wx.DirDialog unter einem bestimmten Pfad (z. B. "C: \ Users \ ExampleUser \ Documents") gibt es eine Möglichkeit, den Benutzer von der angegebenen Grenze zu entfernen Mappe?WxPython-Benutzer kann sich nicht von einem angegebenen Verzeichnis entfernen

+0

Warum nicht einfach eine Liste mit dem Inhalt dieses Verzeichnisses auffüllen und es einen Tag nennen? –

+0

Der Benutzer wird den Dateinamen eines Fotos auswählen, aber ich kann nicht Bilder aus einem anderen Verzeichnis auswählen. Eine Liste würde dafür nicht ausreichen. – MikeJewski

Antwort

1

Der Benutzer wird den Dateinamen eines Fotos

So wollen werden Sie Kommissionierung nicht DirDialog aber FileDialog
Ich glaube nicht, das ist ein Weg, um das Widget auf eine bestimmte Einschränkung des Verzeichnis, aber Sie könnten es sicherlich in Ihrem Code tun. z.B.

#!/usr/bin/python 
import wx 
import os 

class choose(wx.Frame): 
    def __init__(self, parent): 
     wx.Frame.__init__(self, parent, -1) 
     self.Bind(wx.EVT_CLOSE, self.OnClose) 
     dirname = os.getcwd() 
     dlg = wx.FileDialog(self, "Choose Image file", dirname, "", "Image files (jpg)|*.jpg|All files (*.*)|*.*", style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) 
     my_file = "No file selected" 
     if dlg.ShowModal() == wx.ID_CANCEL: 
      pass 
     else: 
      sel_dir = dlg.GetDirectory() 
      if sel_dir != dirname: 
       wx.MessageBox('Please choose a file from the given directory', 'Error', wx.OK | wx.ICON_ERROR) 
      else: 
       my_file = dlg.GetFilename() 
     print "Chosen file:",my_file 
     self.Destroy() 

    def OnClose(self, event): 
     self.Destroy() 

if __name__ == '__main__': 
    my_app = wx.App() 
    p = choose(None) 
    my_app.MainLoop() 
+0

Ich bin traurig, dass es keine Möglichkeit gibt, den Benutzer implizit einzuschränken, aber das ist die nächstbeste Sache. Vielen Dank! – MikeJewski

Verwandte Themen