原文: https://pythonspot.com/wxpython-file-dialog/

几乎每个可以打开一个或多个文件的桌面应用程序都有一个文件对话框。

创建一个打开的文件对话框似乎是一个非常复杂的窗口:它包含按钮,位置,标签和许多其他小部件。 而且,此打开文件对话框的外观在每个平台上都不同:Mac OS,Windows 等。

在 wxPython 的模块配备了开放式的文件对话框,可以用几个函数的调用来创建。

wxPython 文件对话框 - 图1

wxPython 文件打开对话框

wxPython 文件对话框

下面的示例使用 wxPython 创建一个具有本机外观的文件对话框:

  1. #!/usr/bin/python
  2. import wx
  3. def onButton(event):
  4. print "Button pressed."
  5. app = wx.App()
  6. frame = wx.Frame(None, -1, 'win.py')
  7. frame.SetDimensions(0,0,200,50)
  8. # Create open file dialog
  9. openFileDialog = wx.FileDialog(frame, "Open", "", "",
  10. "Python files (*.py)|*.py",
  11. wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
  12. openFileDialog.ShowModal()
  13. print(openFileDialog.GetPath())
  14. openFileDialog.Destroy()

要使用 wxPython 创建文件对话框,我们可以简单地调用wx.FileDialog()。 此方法的定义是:(parent, messgae, defaultDir, defaultFile, pattern, style, pos)。我们用以下参数调用此方法:

  1. wx.FileDialog(frame, "Open", "", "","Python files (*.py)|*.py",wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)

(未指定默认目录或默认文件)。

showModal()方法显示窗口:

  1. openFileDialog.ShowModal()

如果选择一个,则命令openFileDialog.GetPath()返回文件的完整路径。