wxProgressDialog


プログレスバーを使って進捗表示。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import wx

count = 10

app = wx.PySimpleApp()
progress = wx.ProgressDialog(
    u'progressing ...',
    u' '*80,
    maximum = count,
    parent = None,
    style = wx.PD_APP_MODAL|wx.PD_SMOOTH|wx.PD_AUTO_HIDE|wx.PD_CAN_ABORT )
progress.SetFocus()

for x in xrange(count * 100):
    alive, skip = progress.Update(x/100, '{}/{}'.format(x/100, count))
    if not alive:
        wx.MessageBox(u'aborted.')
        break
    wx.MilliSleep(5)
progress.Update(count)
progress.Destroy()

if alive:
    wx.MessageBox(u'done.')

すんごい簡単だった。キャンセルボタンを押すと中断もできる。これは便利。