top

4. tkinterのボタンの使い方

トップページ
Pythonで簡単にアプリを作ることができる「tkinter」についてインストールから実用例までを複数章に分けて解説していく。(2020年12月10日 更新)

目次




ボタン

  • ボタンの定義

  • ボタンの作成には Button() を用いる。

    but = t.Button()


    ボタンに文字を挿入するには text オプションを用いる。

    but = t.Button( text = u'ボタン' )


    ボタンの表示にも pack() または place() を用いる。

     実行例1
    import tkinter as t

    app = t.Tk()
    app.title( 'テスト' )
    app.geometry( '250x150' )

    but = t.Button( text = u'ボタン' )
    but.place( x = 10, y = 10 )

    app.mainloop()

     実行結果




  • ボタンのカスタマイズ

  • ボタンに対しても fontbackgroundforeground オプションが利用できる。詳しくは第3章:ラベルのカスタマイズを参照。

     実行例2
    import tkinter as t

    app = t.Tk()
    app.title( 'テスト' )
    app.geometry( '250x150' )

    but = t.button( text = u'ボタン', font = ('MS Gothic', 20), background = '#FFDFDF' )
    but.place( x = 10, y = 10, width = 230, height = 50 )

    app.mainloop()

     実行結果


  • ボタンの内容を後から書き換える

  • ラベルと同様の操作が可能なため、”第3章:ラベルの内容を後から書き換える”を参照。


  • ボタンを押したときに何か動作をする

  • ボタンを押すことで何か動作をおこしたい時は bind() を用いる。構文は下記だ。

    but.bind(「トリガーとなるキー」,「実行したい関数」)


    「左クリック」を指定するには「'<Button-1>'」と記述すればよい。
    例えばボタンを左クリックしたときに「func」という関数を実行したければ下記のようになる。

    but.bind( '<Button-1>', func )


    これを加味して、ボタンをクリックするたびに数字が1ずつ増えていくプログラムを記述する。

     実行例3
    import tkinter as t

    count = 1

    def func(event):
        global count
        count += 1
        but[ 'text' ] = str( count )

    app = t.Tk()
    app.title( 'テスト' )
    app.geometry( '250x150' )

    but = t.button( text = str( count ), font = ('MS Gothic', 20), background = '#FFDFDF' )
    but.place( x = 10, y = 10, width = 230, height = 50 )

    but.bind( '<Button-1>', func )

    app.mainloop()

     実行結果(gif画像)

    bind()で呼び出した関数には特に記述しなくても「event」という値が与えられる。なので関数を定義する際は def func(event): のようにeventを引数にする必要がある。これについてはそういうものだとして暗記してしまう方がよいだろう。

  • 左クリック以外のキーをトリガーとする

  • 左クリック以外のキーをトリガーにしたい場合については第9章:"バインドについて"を参照。