1. はじめに
今回はプログレスバーを使ってみます。具体的にはSTARTボタンを押すと1秒ずつバーの値が1つ増えていき,バーの値が10になると終了ですと表示するアプリを作ってみます。
2. コード
import tkinter as tk
import tkinter.ttk as ttk
root=tk.Tk()
root.title("プログレスバー")
progressbar=ttk.Progressbar(root,orient="horizontal",length=300,mode="determinate")
progressbar.pack()
maximum_bar=10
value_bar=0
div_bar=1
progressbar.configure(maximum=maximum_bar,value=value_bar)
def var_start(value_bar):
progressbar.configure(value=value_bar)
def Click():
global value_bar,div_bar,text_label
for i in range(maximum_bar):
value_bar+=div_bar
text_label.set(str(value_bar))
if value_bar==maximum_bar:
progressbar.after(1000,var_start(value_bar))
text_label.set("終了しました")
else:
progressbar.after(1000,var_start(value_bar))
progressbar.update()
button=tk.Button(text=u"START",command=Click)
button.pack()
text_label=tk.StringVar()
text_label.set("0")
label=tk.Label(textvariable=text_label)
label.pack()
root.mainloop()
コードを実行すると以下のような画面がでてきます。
STARTボタンを押すとカウントアップが始まり,バーが左から緑色に,また一番したの数字が1秒に1づつ増加していきます。
10秒経つと,バーが緑色で一杯になり,一番下の数字は「終了しました」のテキストに変わります。
3. 説明
プログレスバーを以下コードなります。
progressbar=ttk.Progressbar(root,orient="horizontal",length=300,mode="determinate")
horizontalは横向き、lengthはプログレスバーの長さ、determinateは徐々にバーが緑色になる動作(例えばどれだけ動作が完了したか)を示します。
次にconfigureを使ってプログレスバーの目盛りを決めます。
今回は0~10まで1ずつ動かしたいので以下のように書いています。
maximum_bar=10 value_bar=0 progressbar.configure(maximum=maximum_bar,value=value_bar)
次にプログレスバーの更新ですが、以下のようにプログレスバーのvalieの値を更新する関数を作っておき、.after(1000,var_start(value_bar))で1秒後にその関数が動作するように指定しています。
def var_start(value_bar):
progressbar.configure(value=value_bar)
progressbar.after(1000,var_start(value_bar))
■本紹介
pythonを初めて触ろうとした時に読んだ本を紹介します。
この本は、初心者に最適だと思います。確か亀を動かすゲームのようなコードが載っていたと思います。pythonをこれから始めようと思っている人は読んでみて下さい。
また下の入門python3も良い本だと思いますが、分厚いので中々根気が必要です。個人的には最小限必要なことが書いてある薄い本を読み、必要になってからちょっとずつ知識を増やしていくのが良いと思います。
また何度も紹介しますが、以下のニューラルネットワーク自作入門は非常に良い本です、pythonの書き方から記載されているのでいきなり読んでも大丈夫だと思います。
とりあえず基本的なコードの書き方さえ分かってしまえば、後はネットで知りたい情報にアクセスする方が早いと思います。
4. さいごに
次回は自作タイマーにプログレスバーをくっつけてみたいと思います。
↓次回の記事
www.stjun.com