wxPython Dirdialog总是返回相同的目录

4 python wxpython

我开始学习wxPython来创建GUI应用程序,我遇到了一些问题:当使用wx.DirDialog选择一些文件夹时,无论我选择哪个文件夹,dlg.GetPath()总是返回相同的文件夹,这是在我的情况下:/ home/loai

我的绑定功能如下,它是直截了当的:

def onButton(self,e):
    dlg = wx.DirDialog(self, "Choose a directory:")
    if dlg.ShowModal() == wx.ID_OK:
        print "You chose %s" % dlg.GetPath()
    dlg.Destroy()
Run Code Online (Sandbox Code Playgroud)

这总是打印:你选择/ home/loai

谢谢

Mik*_*oll 6

你用的是什么操作系统?哪个Python?哪个wxPython?这看起来很像我的一个教程中的代码,这对我来说很好.我继续前进,实际上从该教程中编写了一个精简的可运行示例:

import os
import wx


########################################################################
class MyForm(wx.Frame):

    #----------------------------------------------------------------------
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY,
                          "File and Folder Dialogs Tutorial")
        panel = wx.Panel(self, wx.ID_ANY)
        self.currentDirectory = os.getcwd()

        dirDlgBtn = wx.Button(panel, label="Show DirDialog")
        dirDlgBtn.Bind(wx.EVT_BUTTON, self.onDir)

    #----------------------------------------------------------------------
    def onDir(self, event):
        """
        Show the DirDialog and print the user's choice to stdout
        """
        dlg = wx.DirDialog(self, "Choose a directory:",
                           style=wx.DD_DEFAULT_STYLE
                           #| wx.DD_DIR_MUST_EXIST
                           #| wx.DD_CHANGE_DIR
                           )
        if dlg.ShowModal() == wx.ID_OK:
            print "You chose %s" % dlg.GetPath()
        dlg.Destroy()

#----------------------------------------------------------------------
# Run the program
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyForm()
    frame.Show()
    app.MainLoop()
Run Code Online (Sandbox Code Playgroud)

我在Windows 7上使用Python 2.6.6和wxPython 2.8.12.1运行此代码.我选择了三个不同的目录,它打印了所有3个不同的路径.