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

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

MENU

【python】【tkinter】【初心者】チェックボタンを使おう(3/3)

処理の中身を完成させよう

 

1.はじめに

前回は必要な部品(ラベル,チャックボタン×5,ボタン)を作り,チェックボタンのチェックの有無を判別し,チェックの有無で処理を変える方法を記載しました。

for i in len(Check_list_val): 

      if Check_list_val[i].get()==True:

         処理A

     else:

        処理B

↓前々回、前回記事

www.stjun.com

www.stjun.com

 ここまできたら後ちょっとです。ボタンを押したらチェックの有無を確認し、チェックの有無で処理を変えるように少し書き換えてあげましょう。

 

2. コード

前回と同じなため省略します。

 

 

3. 説明 

前回,チェックボタンのチェックの有無はget()で取得し,if文でチェックがついてたら(=True)処理Aを,チェックがついてなかったら(=False)処理Bを行うコードを書きました。

for i in len(Check_list_val): 

      if Check_list_val[i].get()==True:

         処理A

     else:

        処理B

これを関数としてまとめて,ボタンを押すと関数を実行するよう設定してあげれば良いだけです。

コード例は以下になります。

#ボタンを押したらチェックがついてるタスクの数を確認し、チェックの数を表示
    def Click_buttn():
        text_anser=[]
        for i in range(len(Check_list)):
            #チェックが入ってたら(=True),タスクの横に黒字で「タスクは終了しました」と記載する
            if Check_list_val[i].get()==True:
                text=tk.Label(text="タスクは終了しました")
                text.place(x=100,y=i*30+32)
                text_anser.append(1)
                
            #チェックが入ってなかったら(=False),タスクの横に赤字で「タスクは未解決です」と記載する
            else:
                text=tk.Label(text="タスクは未解決です",foreground="red")
                text.place(x=100,y=i*30+32)
                
        #作ったタスクの数(=5個)と終了したタスクの数が同じだったらボタンの横に「お疲れ様でした」と表示
        if len(text_anser)==Check_buttn_number:
            text=tk.Label(text="お疲れ様でした,今日のタスクは終了です。")
            text.place(x=100,y=250)
        #作ったタスクの数(=5個)と終了したタスクの数が違ったらボタンの横に終了したタスクの数を表示
        else:
            text=tk.Label(text="終了したタスクは "+str(len(text_anser))+"/"+str(len(Check_list))+"個です")
            text.place(x=100,y=250)
                
#ボタン(変数名:Button)の作成
Button=tk.Button(win,width=5,background="#ffffff",text="評価",command=Click_buttn)
Button.place(x=30,y=250)   

ここまで読んでくれた方にはもう説明はいらないと思います。

終了したタスクの数は,if Check_list_val[i].get()==True:だったら空のリストtext_anserにappendで1を入れ,これをタスクの数(=5回)繰り返します。最終的にlen(text_anser)で要素の数を取得し、終了したタスクの数を数えています。

また復習ですがtk.Buttonの中にcommand=Click_buttnを記載することで、ボタンを押すとClick_buttn関数が実行するようにしてます。Click_buttn関数の中は、前回やったようにチェックがついてたら(=True),横に黒字で「タスクは終了しました」というテキストを出現させ,チェックがついてなかったら(=False),横に赤字で「タスクは未解決です」というテキストを出現させて,最終的に5個中何個終了したかをボタンの横にテキストで表示させてます。

 

おすすめ書籍 

tkinterは参考書が非常に少ないです、というより日本語の参考書はほぼ皆無です。個人的には以下がお勧めです。

私が勉強していた時は以下のような参考書がなくネットで調べながら苦労してtkinterを覚えましたが、もし当時こんな書籍があったらもっと楽に学べたのに...と思うくらい基本的内容について丁寧に書かれています。

Amazonの月額読み放題サービス「Kindle unlimited」でも読めます。

初回30日間は無料、退会も簡単なので試しに無料体験して読んでみてもよさそうです。

 

4.最後に

これまでボタンやチェックボタンといったtkinterの基本機能を紹介しました。。

次回はタイマーを作ってみます。

↓次回記事

www.stjun.com