0

次のコードがあります。

import wx
from sys import platform

wildcard = "CSV files|*.csv|"\
           "XML files|*.xml|"\
           "Microsoft Excel files|*.xlsx" if platform == "win32" else "CSV files|*.csv|"\
                                                                      "XML files|*.xml|"

if __name__ == "__main__":
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame_1 = wx.Frame(None, -1, "")
    app.SetTopWindow(frame_1)
    frame_1.Show()
    dlg = wx.FileDialog(
            frame_1, message="Choose a file",
            defaultDir="",
            defaultFile="",
            wildcard=wildcard, #PROBLEM IS HERE THAT'S FOR SURE
            style=wx.OPEN
    )
    dlg.ShowModal() #IT CRASHES HERE
    dlg.Destroy()
    app.MainLoop()

この FileDialog は Windows と Linux では完璧に動作しますが、Mac OS X ではクラッシュします。Mac OS X で FileDialog を適切に動作させるために変更できることはありますか?

Python 2.7.3、wxPython 2.8、Mac OS X 10.6

更新: 小さなサンプルに更新されました。

更新 2:「ワイルドカード」パラメーターがなくてもうまく機能しますが、とにかくワイルドカードが必要です。

4

1 に答える 1

0

自分で答えを見つけました:

http://trac.wxwidgets.org/ticket/4489

最後の「|」を削除した後、ワイルドカードが不適切にフォーマットされていると、Mac でクラッシュします。ワイルドカードでは、すべて正常に機能します。

于 2012-12-12T10:56:22.890 に答える