PythonでGUIアプリケーションを簡単に作る時、初心者に優しいライブラリにTkinterがあります。ここではGUIアプリケーションに必須のボタン処理の基礎を学びます。
こんにちは。wat(@watlablog)です。
GUIプログラミングをする時にはイベント処理が必須!ここではその基礎となるボタン処理について学びます!
イベント処理はGUIの基本
イベント処理とは?
イベント処理とは、プログラムの世界では「キーボードから入力があった」、「マウスがクリックされた」、「時刻が〇〇になった」といったイベント(出来事)をトリガとして実行される処理のことを指します。
対してこれまでWATLABブログでも多く取り扱ってきた信号処理やある計算だけをするプログラムにはイベント処理はありません。
イベント処理のイメージは電卓を例にとるとわかりやすくなります。
電卓はユーザが任意の数値をポチポチとボタンで打ち込み、加算や減算といった演算処理を、これまたボタンでポチポチ計算機に指示を出します。
入力される数値や順番がユーザによって変わることをボタン処理というイベントで対応しているんですね。
日常生活はまさにイベント処理で溢れているね!
このページではそのイベント処理の代表格であるボタン処理を、PythonのTkinterによって実装する方法について説明します。
Tkinterを使ってGUIアプリケーションを作る理由は「Python初心者がGUI作成にTkinterを選ぶ3つの理由」をご覧下さい。
Tkinterでボタン処理を実装
イベント処理の作成
ボタンを設置する前に、まずはイベントを関数として作成します。関数はdef文で作りますが関数の詳細は「Pythonの関数 def文の使い方!引数や別ファイル式も解説」をご覧下さい。
今回はボタンを押したら「Hello World!」と書かれたラベルがランダムな位置に発生するという関数にしました(意味は特にありません…)。.placeで位置を設定しています。
1 2 3 4 5 6 7 8 |
import tkinter as tk #Tkinterをインポート import random def bot(): label = tk.Label(text='Hello World!') # ラベルを定義 x = random.randrange(640) y = random.randrange(480) label.place(x=x, y=y) # ラベルを設置 |
ボタンの作成とイベントのセット
イベントを関数で作成したら、次は以下のコードのようにボタンを定義します。
commandの部分に関数名を割り当てます。
1 2 3 4 5 6 7 8 |
window = tk.Tk() #ウィンドウを定義 window.title("Title") #ウィンドウタイトルを設定 window.geometry("640x480") #ウィンドウサイズを設定 btn = tk.Button(window, text='Hello!', command = bot) #ボタンの作成 btn.place(x=10, y=10) window.mainloop() #メインループとして待機状態にする |
以下が実行結果です。かなり下らないプログラムとなってしまいましたが、一応ボタンの機能を最低限使ったシンプルなものになっています。
ボタンの色を変える
ボタンの背景色はbg, フォント色はfgで指定することができます。
色はこちらの「WEB色見本 原色大辞典」というWebサイト様が大変見やすいインデックスを作っていますので、いつも参照しています。
1 |
btn = tk.Button(window, text='Color', command = bot, bg = '#008000', fg = '#ffffff') |
まとめ
このページではGUIアプリケーションにおけるイベント処理の基本であるボタン処理の基本を学びました。
イベント処理を使えばユーザの動作に合わせた処理を、ユーザが計算したい回数だけ実行することができることを確認しました。
GUIアプリケーションで引数を取り扱う前に、まずはボタンの基本的な動作を覚えたぞ!次はより関数っぽい使い方を順次覚えて行こう!
Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!
コメント