3265130 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

傀儡師の館.Python

傀儡師の館.Python

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Recent Posts

Calendar

Keyword Search

▼キーワード検索

Category

Archives

2023.11
2023.10
2023.09
2023.08
2023.07

Freepage List

Profile

kugutsushi

kugutsushi

Free Space

設定されていません。
2015.02.19
XML
カテゴリ:Python
quickgui を自分好みに改造したついでなので、プログレスバーも簡単に使えればいいかと思って追加してみた。Updating a wxPython progress bar after calling app.MainLoop() を参考にして、次のコードを quickgui に追加。

def guage(title, func, msg = "processing..."):
import threading

def start(func, *args): # helper method to run a function in another thread
thread = threading.Thread(target=func, args=args)
thread.setDaemon(True)
thread.start()

app = wx.PySimpleApp()
dialog = wx.ProgressDialog(title, msg)
start(func, dialog)
dialog.ShowModal()
app.MainLoop()

return True

使うときには、引数として渡してやる関数に更新のロジックを書けばいい。wx.CallAfter の行を入れればいいだけなので、毎回長いコードを書くよりはるかに楽かなと。

# -*- coding: utf-8 -*-

import wx
import quickgui # 改造中のもの
import time

def do_something(dialog):

max_size = 400 # 400回のループを回してみる
step = 100.0 / max_size
count = 0.0

for i in range(max_size):
count += step
wx.CallAfter(dialog.Update, count)
time.sleep(0.1) # 実際の処理をここに
wx.CallAfter(dialog.Destroy)

quickgui.guage("メッセージ処理", do_something, msg="処理中です...")







お気に入りの記事を「いいね!」で応援しよう

Last updated  2015.02.19 06:14:26
コメント(0) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
別の画像を表示
上の画像で表示されている数字を入力して下さい。


利用規約に同意してコメントを
※コメントに関するよくある質問は、こちらをご確認ください。



© Rakuten Group, Inc.