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ボタンをクリックするとプログレスバーダイアログが表示される。


