Я не могу получить wx.ProgressDialog для закрытия. Если он истечет; Все отлично. Нажатие на отмену или пропустить выйдет из диалогового окна, но окно остается навсегда замороженным на экране (возвращается поток управления).wxpython: destroy cancel ProgressDialog
import wx
def Progress(parent=None, message="", title="", maximum=3000):
dlg = wx.GenericProgressDialog(title, message, maximum,style=wx.PD_AUTO_HIDE|wx.PD_APP_MODAL|wx.PD_CAN_SKIP|wx.PD_CAN_ABORT)
keepGoing = True
skip = False
count = 0
while keepGoing and (not skip) and count < maximum:
count += 1
wx.MilliSleep(1)
wx.Yield()
(keepGoing, skip_bogus) = dlg.Update(count)
skip = dlg.WasSkipped() #NOTE: skip_bogus doesn't ever seem to update; even when skip button is clicked
dlg.Destroy()
wx.Yield()
if not keepGoing:
return "cancel"
elif skip:
return "skip"
else:
return None
app = wx.App()
app.MainLoop()
Progress(None, "message", "title")
WxPython v3.0.2 питон v2.7.10
Это не решит проблему. После выхода из цикла диалог не будет уничтожен. Использование ЦП в цикле не имеет значения. – whitey04
Понятно, что ваш пример работает для меня с той же самой ** конфигурацией, что и ваша (вещи Python 32 бит, Win7 64 бит) без малейших изменений. Даже изменения, предложенные @RobinDunn, не нужны. – nepix32