你在使用什麼操作系統?哪個Python?哪個wxPython?這看起來很像我的一個tutorials的代碼,它對我來說工作得很好。我說幹就幹,實際上是從該教程寫了一個精簡的可運行的例子:
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()
我跑這個代碼在Windows 7上使用Python 2.6.6和wxPython的2.8.12.1。我選擇了三個不同的目錄,它打印了所有3種不同的路徑。
我正在運行linux mint,並且因爲它是在Ubuntu上面構建的,所以它有同樣的問題:)謝謝 –
我剛剛確認一臺機器DirDialog會給出預期的結果,無論您進入目錄並單擊打開或只是選擇該目錄並點擊打開。該機器運行Ubuntu 11.10,Python 2.7.2和wxPython 2.8.11.0。我不知道這個差別是在wxPython 2.8.11.0和2.8.12.1之間還是在Ubuntu 11.10和12.10之間 – jkibele