wxMessageBox com um timer de fechamento automático em wxPython
lataformas: Windows, OS X
ersão do Python: Estado Ativo Python 2.7
wxPython Versão: Versão 2.9
Aqui está um código de exemplo no qual eu uso uma 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()
De acordo com o código acima, se o nome do host não for 'super-homem', o usuário exibirá uma caixa de mensagem e será solicitado a pressionar 'OK'. Se o usuário pressionar o botão 'OK' na caixa de mensagem, o controle passará para a próxima linha no código (ou seja, número da linha 10) onde o quadro é destruído. Desejo poder fechar automaticamente a caixa de diálogo e ir para a próxima linha do código, ou seja,self.Destroy()
se o usuário não pressionar o botão 'OK' nos próximos 2 segundos. Alguma idéia de como faço isso no wxpython?