プラットフォーム:Windows、OS X
Pythonバージョン:アクティブ状態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()
上記のコードによると、ホスト名が「スーパーマン」でない場合、ユーザーにはメッセージボックスが表示され、「OK」を押すように求められます。ユーザーがメッセージボックスの[OK]ボタンを押すと、コントロールはコード内の次の行(つまり、行番号10)に移動し、フレームが破棄されます。ダイアログボックスを自動的に閉じて、コードの次の行に移動できるようにしたいです。つまり、self.Destroy()
ユーザーが次の2秒間に[OK]ボタンを押さなかった場合です。wxpythonでそれをどのように行うかについての考えはありますか?