Рабочий пример:
ормы: Windows, OS X
Версия Python: Active State Python 2.7
Версия wxPython: версия 2.9
Вот пример кода, в котором я использую wxMessageBox:
import wx,os
class Frame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(100, 100),style=wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN)
host=os.system('hostname')
if host!='superman':
self.dialogBox=wx.MessageBox('The host name should be superman. Closing this dialog box in 2s...','Info')
self.Destroy()
else:
self.Center()
self.Show()
if __name__ == '__main__':
app = wx.App(redirect=False)
frame = Frame(None, -1, 'Sample')
app.MainLoop()
В соответствии с приведенным выше фрагментом кода, если имя хоста не «супермен», то пользователю отображается окно сообщения и предлагается нажать «ОК». Если пользователь нажимает кнопку «ОК» в окне сообщения, то элемент управления переходит к следующей строке в коде (то есть, строке № 10), где кадр разрушается. Я хочу иметь возможность автоматически закрывать диалоговое окно и переходить к следующей строке в коде, т.е.self.Destroy()
если пользователь не нажмет кнопку «ОК» в течение следующих 2 секунд. Любые мысли о том, как мне это сделать в wxpython?