機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

pythoとTkinterでプログレスバーを作ってみた

1.  概要

pythonTkinterを使って,STARTボタンを押すと1秒ずつバーの値が1つ増えていき,バーの値が10になると終了ですと表示するアプリを作りました。

 

2.  動作画面

コードを実行すると以下のような画面がでてきます。

f:id:stjun:20190602175319p:plain

 

STARTボタンを押すとカウントアップが始まり,バーが左から緑色に,また一番したの数字が1秒に1づつ増加していきます。

f:id:stjun:20190602175942p:plain

 

10秒経つと,バーが緑色で一杯になり,一番下の数字は「終了しました」のテキストに変わります。

f:id:stjun:20190602175958p:plain

 

3.  コード

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)

#ボタンを押したら1秒ずつカウント、maximumに達したら終了しましたを表示
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()

 

■本紹介

pythonを初めて触ろうとした時に読んだ本を紹介します。

 

 この本は、初心者に最適だと思います。確か亀を動かすゲームのようなコードが載っていたと思います。pythonをこれから始めようと思っている人は読んでみて下さい。

また下の入門python3も良い本だと思いますが、分厚いので中々根気が必要です。個人的には最小限必要なことが書いてある薄い本を読み、必要になってからちょっとずつ知識を増やしていくのが良いと思います。

また何度も紹介しますが、以下のニューラルネットワーク自作入門は非常に良い本です、pythonの書き方から記載されているのでいきなり読んでも大丈夫だと思います。

 とりあえず基本的なコードの書き方さえ分かってしまえば、後はネットで知りたい情報にアクセスする方が早いと思います。