この記事は、PythonでGUIアプリを作成するための内容となります。
tkinterを用いて、ウィンドウにボタンを表示させていきます。
本記事の内容
- PythonでGUIアプリを作成できる環境を準備する
- PythonでGUIアプリのウィンドウを作成する
- PythonでGUIアプリにボタンを表示する
それでは、上記に沿って解説していきます。
PythonでGUIアプリを作成できる環境を準備する
まずは、PythonでGUIアプリを作成する環境の準備からです。
詳細は次の記事にまとめています。
記事の内容を一言で言うと、「Python 3なら何もする必要はない」です。
Python 3の標準ライブラリとして、tkinterが用意されています。
そのため、気にするのはPythonのバージョンとなります。
バージョン的には問題ないのであれば、次へ進みましょう。
PythonでGUIアプリのウィンドウを作成する
PCで動くGUIアプリであれば、ウィンドウと表現するべきなのでしょう。
このウィンドウ(以下では画面)を表示するコードは以下。
import tkinter # 画面作成 window = tkinter.Tk() window.geometry("400x300") window.title("画面だけ表示")
プログラムの説明不要ですね。
見たままの内容です。
これを実行すると画面が表示されます。
どうですか?
画面は表示されましたか?
通常は見えないはずです。
なぜなら、一瞬で消えるからです。
画面を表示させておくには、プログラムを動かし続ける必要があります。
もっとわかりやすい表現なら、常駐させておく必要があるのです。
常駐しておかないと、ユーザーからの処理を受け付けることができません。
そこで、常駐させておくための決まり文句があります。
以下のコードをプログラムの最後に追加します。
window.mainloop()
追加した状態で、再度プログラムを実行してみてください。
上記の画面が出てきたはずです。
それも2つ!!
一つは先ほど、実行したプログラムの画面ということです。
画面の確認ができたら、すべて「×」で削除してください。
以上より、画面を表示させることができました。
次は、この画面にボタンを表示させます。
PythonでGUIアプリにボタンを表示する
ボタンを表示するには、以下の2つの処理があります。
- ボタンを作成する
- 作成したボタンを画面に追加する
それぞれを説明していきます。
ボタンを作成する
参考(公式が紹介)
https://tcl.tk/man/tcl8.6/TkCmd/ttk_button.htm
w = Button ( master, option=value, ... )
masterは、画面(window)のことです。
optionは以下のモノがあります。
command | クリック時の呼び出し関数 |
compound | textとimageの両方設定時における画像位置 |
cursor | マウスカーソル |
image | 画像 |
style | style設定 |
takefocus | キーボード処理におけるフォーカス制御 |
text | ラベル |
textvariable | 動的ラベル(プログラムで変更可能) |
underline | 下線表示 |
width | スペース幅(ボタン幅ではない、cssのpaddingと同じ概念) |
いろいろありますが、今回はtextを利用します。
# ボタン作成 btn = tkinter.Button(window, text="ボタン")
これでボタンを作成することができました。
次は、このボタンを画面に追加します。
作成したボタンを画面に追加する
w.place(x=●, y=●, option=value, ...)
wは作成した部品(Widget)の変数名となります。
座標位置のxとyは必須と考えてよいでしょう。
引数一覧は以下。
詳細は、ここでは省きます。
anchor | 配置位置(定数で指定:9パターン) |
bordermode | 縁の表示(内側:Tk.INSIDE、外側: Tk.OUTSIDE) |
height | Widget高さ |
relheight | 親widgetにおける相対的な高さ(0.0~1.0) |
relwidth | 親widgetにおける相対的な幅(0.0~1.0) |
relx | 親widgetにおける横の相対位置(0.0~1.0) |
rely | 親widgetにおける縦の相対位置(0.0~1.0) |
width | Widget幅 |
x | ウィンドウにおける横の絶対位置(ピクセル) |
y | ウィンドウにおける縦の絶対位置(ピクセル) |
今回は、次の引数を利用します。
# ボタン表示 btn.place(x=125, y=230, width=150, height=40)
ボタンを表示する
上記までのコードを完成させましょう。
タイトルも「ボタンを表示する」に変更。
import tkinter # 画面作成 window = tkinter.Tk() window.geometry("400x300") window.title("ボタンを表示する") # ボタン作成 btn = tkinter.Button(window, text="ボタン") # ボタン表示 btn.place(x=125, y=230, width=150, height=40) # 画面表示(常駐) window.mainloop()
これを実行します。
ボタンも意図した場所に細かく表示できています。
大体やりたいことはできそうです。
以上、お疲れ様でした。