【完全独学Python】Tkinterはこれだけ覚えて!初心者向けに徹底解説!

デスクトップアプリ

こんにちは!ゆーや(@yuyamanm118712)です。

こちらのページでは完全独学でWebプログラマとなった私が

デスクトップアプリには欠かせないTkinterの操作」に関して必要な情報をまとめています。

最後までじっくりと読んで、一緒に学習にしていきましょう。

なお、ご指摘・ご質問はTwitter(@yuyamanm118712)のDMまでよろしくお願いします。

この記事を読むと

  • Tkinterの基本操作が分かる
  • デスクトップアプリの画面のつくり方の基本がわかる
  • ウィジェットの種類がわかる
  • ウィジェットの実装例がわかる

Tkinterとは

Tkinterは、PythonでGUI(グラフィカルユーザーインターフェース)を作成するための標準ライブラリです!

Tkinterを使えば、ウィンドウ、ボタン、テキストボックス、ラベルなど、さまざまなGUI要素を作成して配置、また、これらの要素にイベントアクションを関連付けることもできます!

また、TkinterPythonの標準ライブラリでもあるので、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種類のウィジェット(部品)の作成と配置

ゆーや
ゆーや

まとめの内容を見て、もう頭に浮かべば完璧!

最近の投稿

コメント

タイトルとURLをコピーしました