0

当我在 IDLE 中运行此代码时,它会崩溃。但是,如果我在 IDLE 之外运行它,它就可以正常工作。

有几个用 python 编写的 Python IDE 遇到了同样的问题,但是如果我使用不是基于它的 IDE/编辑器,它们也可以正常运行。

有什么方法可以修改此代码,以免弄乱 IDLE & Friends 吗?

import wx

def MultiChoiceDialog(parent, title, message, choices):
    app = wx.PySimpleApp()
    app.MainLoop()
    dlg = wx.MultiChoiceDialog(parent, title, message, choices)

    try:
        if dlg.ShowModal() == wx.ID_OK:
            selections = dlg.GetSelections()
            strings = [choices[x] for x in selections]

            return strings
        else:
            return False
    finally:
        dlg.Destroy()
        app.Destroy()

哦,如果还不是很明显,我将其导入另一个文件,并像这样调用 MultiChoiceDialog:

#Choice = MultiChoiceDialog(None, 'Title', 'Message', ['game1', 'game2', 'game3'])
4

1 回答 1

0

Ubuntu 上带有 wx 2.8.11.0 的最新版本 IDLE (2.7.2) 不会导致 IDLE 崩溃。

于 2012-03-26T07:29:35.083 回答