wxPythonでプログレスバーダイアログを表示してみる
wx.ProgressDialogを使って、プログレスバーを表示してみる。ボタンをクリックすると、プログレスバーが表示され、15秒カウントすると、ダイアログが閉じる。
#!/usr/bin/env python # -*- coding: utf-8 -*- import wx class MyProgressDialog(wx.ProgressDialog): progressMax = 15 def __init__(self): wx.ProgressDialog.__init__(self, "A progress box", "Time remaining", self.progressMax, style=wx.PD_ELAPSED_TIME | wx.PD_REMAINING_TIME | wx.PD_AUTO_HIDE) def Show(self): keepGoing = True count = 0 while keepGoing and count < self.progressMax: count = count + 1 wx.Sleep(1) keepGoing = self.Update(count) class MyWindow(wx.Frame): def __init__(self,parent,id): wx.Frame.__init__(self,parent,id,"MyTitle",size=(300,200)) panel=wx.Panel(self) button=wx.Button(panel,label="exit",pos=(130,10),size=(60,60)) button2=wx.Button(panel,label="dialog",pos=(130,70),size=(60,60)) self.Bind(wx.EVT_BUTTON, self.closebutton, button) self.Bind(wx.EVT_BUTTON, self.dialogbutton, button2) def closebutton(self,event): self.Close(True) def dialogbutton(self,event): dialog = MyProgressDialog() dialog.Show() dialog.Destroy() if __name__=='__main__': app=wx.PySimpleApp() frame=MyWindow(parent=None,id=-1) frame.Show() app.MainLoop()
プログラムを実行するとメインウインドウが表示される。
dialogボタンをクリックするとプログレスバーダイアログが表示される。