こんにちは!ゆーや(@yuyamanm118712)です。
こちらのページでは完全独学でWebプログラマとなった私が
デスクトップアプリには欠かせない「Tkinterの操作」に関して必要な情報をまとめています。
最後までじっくりと読んで、一緒に学習にしていきましょう。
なお、ご指摘・ご質問はTwitter(@yuyamanm118712)のDMまでよろしくお願いします。
この記事を読むと
- Tkinterの基本操作が分かる
- デスクトップアプリの画面のつくり方の基本がわかる
- ウィジェットの種類がわかる
- ウィジェットの実装例がわかる
Tkinterとは
Tkinterは、PythonでGUI(グラフィカルユーザーインターフェース)を作成するための標準ライブラリです!
Tkinterを使えば、ウィンドウ、ボタン、テキストボックス、ラベルなど、さまざまなGUI要素を作成して配置、また、これらの要素にイベントやアクションを関連付けることもできます!
また、TkinterはPythonの標準ライブラリでもあるので、Pythonをインストールしている方なら特別にインストールすることは不要です!
画像にあるようなシューティングゲームなども簡単に作れます!
Tkinterの基本操作
モジュールのインポート
import tkinter as tk
例では「tkinter」をtkという名前でインポートしているよ!
ここからはtkと略して書くことができる!
ウィンドウの作成
import tkinter as tk
# ウィンドウの作成
root = tk.Tk()
# タイトルの設定
root.title("デスクトップアプリ-完全独学Python")
# ウィンドウのサイズを決定(横x縦)
root.geometry("500x300")
# ウィンドウの表示
root.mainloop()
geometryの「x」は小文字のエックスであることに注意!
これだけで自分で作ったウィンドウが表示できる!
あとは好きな部品をこの上に乗せるだけ!
部品(ウィジェット)の配置
ウィンドウの上に置くテキストやボタンなどの事を「ウィジェット」と呼ぶよ!
ここでは、ウィジェット11個を簡単に紹介していくよ!
ラベル(Label)
import tkinter as tk
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# ラベルの作成
label = tk.Label(root, text = "完全独学Pythonで今日も勉強だ")
label.pack()
# ウィンドウの表示
root.mainloop()
テキストは「ラベル」を使って配置するよ!
ウィジェットは作成して、pack()で配置が基本!
詳しく知りたい方は以下の記事を見てね!
ボタン(Button)
import tkinter as tk
# ボタンを押下した時に動く関数
def push():
label = tk.Label(root, text="押すなって言ったのに…")
label.pack()
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# ボタンの作成
button = tk.Button(root, text="絶対に押すなよ", command=push)
button.pack()
root.mainloop()
ボタンを押したときに動く関数を用意して、commandに渡してあげれば
簡単に機能が作れる!ボタンを押してみてね!
ボタンのデザインについては下記の記事を見てね!
入力欄(Entry)
import tkinter as tk
# ボタンを押下した時に動く関数
def push():
label = tk.Label(root, text="あなたが入力した値は「" + entry.get() + "」ですね…")
label.pack()
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# 入力欄
entry = tk.Entry(root, width=10)
entry.pack()
# ボタンの作成
button = tk.Button(root, text="絶対に押すなよ", command=push)
button.pack()
# ウィンドウの表示
root.mainloop()
Entryを使い、入力欄が作成でき、
entry.get()で入力値を取得することができる!
詳しく知りたい方は下記の記事を見てね!
フレーム(Frame)
import tkinter as tk
# ボタンを押下した時に動く関数
def push():
label = tk.Label(frame, text="押すなって言ったのに…")
label.pack()
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# フレームの作成
frame = tk.Frame(root, width="200", height="250", bd=2, bg="red", relief=tk.RAISED)
frame.propagate(False)
frame.pack()
# ボタンの作成
button = tk.Button(frame, text="絶対に押すなよ", command=push)
button.pack()
root.mainloop()
Frameを使うことで、ウィンドウ内に枠を作ることができる!
分かりやすく赤くしているよ!
詳しくは以下の記事を見てね!
リストボックス(ListBox)
import tkinter as tk
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# リストの作成
list = tk.Listbox(root)
# リストの項目作成
list.insert(0, "x1")
list.insert(1,"x2")
list.insert(2, "x3")
# リストを配置
list.pack()
# ウィンドウの表示
root.mainloop()
選択肢から選ぶようなときに使えるね!
詳しくは以下の記事を見てね!
チェックボックス(Checkbutton)
import tkinter as tk
# ウィンドウの表示
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# チェックボックス
checkbutton = tk.Checkbutton(root, text="完全独学Pythonは好きですか")
checkbutton.pack()
# ウィンドウの表示
root.mainloop()
チェックボックスは「Checkbutton」で定義するので注意!
詳しくは以下の記事を見てね!
ラジオボタン(Radiobutton)
import tkinter as tk
# ウィンドウの表示
root = tk.Tk()
root.title("完全独学Python")
root.geometry("500x300")
# ラジオボタン
radiobutton1 = tk.Radiobutton(root, text="完全独学Python最高", value=1)
radiobutton1.pack()
radiobutton2 = tk.Radiobutton(root, text="いや、完全独学PythonはExcellent", value=2)
radiobutton2.pack()
# ウィンドウの表示
root.mainloop()
アンケートでよく見るラジオボタンも簡単に作れます!
詳しくは以下の記事を見てね!
複数行テキスト(Message)
import tkinter as tk
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# メッセージの作成
message = tk.Message(root, relief="raised", text="完全独学Pythonを使って、独学でプログラマを目指そう!")
message.pack()
# ウィンドウの表示
root.mainloop()
枠に合わせて自然に改行してくれているね!
詳しくは以下の記事を見てね!
スライダー(Scale)
import tkinter as tk
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# スライダー
scale = tk.Scale(root)
scale.pack()
# ウィンドウの表示
root.mainloop()
ゲームなどの設定でよく見るスライダー!
ゲームを自作した時にぜひ!
詳しくは以下の記事を見てね!
スピンボックス(Spinbox)
import tkinter as tk
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# スピンボックス
spinbox = tk.Spinbox(root, from_=0, to=10, increment=0.1)
spinbox.pack()
# ウィンドウの表示
root.mainloop()
こちらは矢印で数値を変更するスピンボックス!
数値の範囲や増加量などの調整ができる!
詳しくは以下の記事を見てね!
サブウィンドウ(Toplevel)
import tkinter as tk
# ウィンドウの作成
root = tk.Tk()
root.title("デスクトップアプリ-完全独学Python")
root.geometry("500x300")
# サブウィンドウの作成
toplevel = tk.Toplevel(root, height=100, width=100)
toplevel.propagate(False)
toplevel.title("サブウィンドウ")
# サブウィンドウ用ラベル
sub_label = tk.Label(toplevel, text="こちらサブウィンドウ")
sub_label.pack()
root.mainloop()
「セーブデータを上書きしますか?」などの時、
サブウィンドウが出てるよね!
詳しくは以下のページを見てね!
まとめ
① Tkinterは、PythonでGUI(グラフィカルユーザーインターフェース)を作成するための標準ライブラリ
② Tkinterの基本操作(モジュールのインポート、ウィンドウの作成)
③ 11種類のウィジェット(部品)の作成と配置
まとめの内容を見て、もう頭に浮かべば完璧!
最近の投稿
コメント