wxPython: MainLoop (), кажется, зависает

1
задан BandGap 19 May 2010 в 09:23
поделиться

1 ответ

Вызов вашей функции с удаленным EndModal работает нормально и возвращает меня в консоль после выбора да / нет. Выбор одного из них в основном вызывает EndModal, и вы вызываете это вручную, вызывая исключение

Traceback (most recent call last):
  File "blah.py", line 19, in <module>
    HasFile("C:\tbzrcommand_args.txt")
  File "blah.py", line 12, in HasFile
    dial.EndModal(retCode=0)
  File "C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_windows.py", line 715, in EndModal
    return _windows_.Dialog_EndModal(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "IsModal()" failed at ..\..\src\msw\dialog.cpp(361) in wxDialog::EndModal(): EndModal() called for non modal dialog

fix:

import wx
from os import path
def HasFile(filename):
    if path.isfile(filename ):
        print 'gfd'
        app = wx.App(redirect=False)
        dial = wx.MessageDialog(None,
                                'Die Datei "'+filename+'" wurde gefunden.\nSoll sie eingelesen werden?',
                                'Bitte antworten',
                                wx.YES_NO | wx.YES_DEFAULT | wx.ICON_QUESTION)
        result = dial.ShowModal()
        dial.Destroy()
        app.MainLoop()
        return result == wx.ID_YES
    else:
        return False
2
ответ дан 3 September 2019 в 00:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: