python3 Tips

Step05:何かしらの動きをつける

commandで命令!

 → 

Step4では、ボタンを作成することを学びました(Button Widget)。が、それを押しても何も実行しませんでした。

今回は、Button Widgetのconfigureオプションに命令(command)を与え、ボタンを押すと上画像のような変化をするプログラムを作ってみましょう。

Step4で作成したプログラムの内容を少しいじれば、完成します。一応、前回「作成したプログラムは、どこかに保存しておいてください」 と勧告しておきましたが、保存していない人は、Step4に戻って、コピペしてください。

#!/usr/bin/env python
# coding=utf-8

from tkinter import *

class MyApp(object):
    def __init__(self):
        self.root = Tk()

        self.frm_Main = Frame(self.root)
        self.frm_Main.pack()

        self.lbl_GoodAfternoon = Label(self.frm_Main)
        self.lbl_GoodAfternoon.configure(text = 'こんにちは、日本君!')
        self.lbl_GoodAfternoon.pack()

        self.btn_ChangeLabel = Button(self.frm_Main)
        self.btn_ChangeLabel.configure(text = '実行', command = self.goodBye) # ココに注目!
        self.btn_ChangeLabel.pack()

        self.root.mainloop()

    def goodBye(self):
        self.lbl_GoodAfternoon.configure(text = 'さようなら…。')

if __name__ == '__main__':
    app = MyApp()
			

前回作成したプログラムのself.btn_ChangeLabel(Button)のconfigure()部分に、新たにcommandオプションを追加し、 goodByeというメソッド名を付加。さらに下方にてgoodBye()メソッドの定義(23行目)。このように、

 command = メソッド名 ( メソッド名()とすると動きません )

で、ウィジットに命令を与え、何かしらの動きをさせることができます。

今回のgoodBye()メソッドは、’実行’ボタンが押されると「こんにちは、日本君!」から「さようなら…。」 とラベルが書き換わります。