Python

【Python/tkinterでGUIアプリ開発】<>Button(ボタン)

TkinterはPythonの標準GUIツールです。

Python初心者でも簡単にアプリ開発できるツールであり、さらにデータベースを作成したり操作するSQLも導入していけば本格的なシステムとして利用も可能です。

また、exe化と組み合わせることで誰のどのPCでも動作できるアプリとなり、ちょっとした職場の社内システムなど幅広く応用が効きます。

Pythonユーザには一度は触れていただきたいオススメツールの一つです。

exe化については下記記事を参考にして下さい。

【Pythonでexeファイル作成】pyinstallerで誰でも簡単に.pyを起動 pyインストーラを使うとexeファイルが作成できるのでpython環境がないPCでもPythonファイルを実行することができます。 今...

※本記事ではMacOS環境の解説です。Windows環境でも動作しますが、見え方が異なるのでご了承ください

インポートからボタン設置まで

インポートについて

Anacondaのインストールがまだの方はこちらの記事を参考に準備してください。

Jupyter notebookの起動と使い方まで紹介しています。

【2020年版、Python3をはじめよう!(Mac&Win対応)】AnacondaとJupyter notebookの始め方 はじめに Jupyter notebookとは Jupyter notebook(ジュピター・ノートブック)はブラウザ上で...

tkinterはpythonの標準ライブラリなのでインストールすることなく初めからインポートで使用できます。

import tkinter as tk

ボタン設置について

早速これから様々なボタンの設置について解説していきます。

まずはシンプルなボタンの設置です。

root = tk.Tk()
btn= tk.Button(root, text = 'ここをクリック')
btn.pack()
root.mainloop()

Buttonのオプション紹介

詳細はこちらのHPを参照してください

fg(通常時の文字の色)

続いて色の指定についてです。

import tkinter as tk
root = tk.Tk()
btn1= tk.Button(root, text = 'ボタン1',fg ="#ff0000")
btn2= tk.Button(root, text = 'ボタン2',fg ="blue")
btn1.pack()
btn2.pack()
root.mainloop()

height、width(高さ、幅の指定)

ボタンのサイズを変更する方法についてです。

root = tk.Tk()
btn1= tk.Button(root, text = 'ボタン1',height=5)
btn2= tk.Button(root, text = 'ボタン2',width=25)
btn1.pack()
btn2.pack()
root.mainloop()

padx、pady(左右・上下方向の余白)

余白の調整もできます。

root = tk.Tk()
btn1= tk.Button(root, text = 'ボタン1')
btn2= tk.Button(root, text = 'ボタン2',padx=55,pady=30)
btn1.pack()
btn2.pack()
root.mainloop()

command(押された後の動作設定)

クリック後のイベントを設定する方法についてです。

root = tk.Tk()

#入力ボックス作成
entry = tk.Entry(width=20)
entry.pack()

btn1= tk.Button(root, text = 'ボタン1')
btn1["command"] = lambda: entry.insert(tk.END, btn1["text"]+"が押されました")
btn1.pack()
root.mainloop()

font、state、anchor、wraplength(フォント・無効化・寄せ・改行)

最後に、その他使えそうなオプションを紹介します。

root = tk.Tk()
btn1= tk.Button(root, text = 'フォント大きさ',font = ("", 18))
btn1= tk.Button(root, text = '無効化',state = tk.DISABLED)
btn2= tk.Button(root, text = '上寄せ',anchor = tk.N)
btn3= tk.Button(root, text = '左寄せ',anchor = tk.NW)
btn4= tk.Button(root, text = '改行する',wraplength = 6)
btn1.pack()
btn2.pack()
btn3.pack()
btn4.pack()
root.mainloop()

以上で解説は終わりです。

Mickey@コーヒー好きエンジニア

【製造業×プログラミング×AI】Python/VBAを活用した業務改善、Streamlit/Plotlyを活用したWebアプリ開発について初心者向けに発信中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信|ココナラではプログラミングに関する相談,就職/転職やコーヒーに関する相談などのサービスをやっています