Closed10
tkinterでアプリをつくる

環境構築
VS Codeをインストールする
プログラムを書くためのエディター(編集アプリ)をインストールする。
下記リンクからWindows向けのインストーラをダウンロードして実行。
VS Codeを日本語化
Python3をインストールする
インストール後、きちんとPythonが動作するかチェックする。
python --version
# or python3 --version
tkinterをインストールする
tkinterはPythonにデフォルトで付いてくるようなので、追加の操作は不要らしい。

Pythonのコードを書く
プログラムを編集・保存するためのフォルダを作成する。
VS Codeで作成したフォルダを開く。
hello.py
を作成し、下記コードを書く。
hello.py
print("Hello World")
ターミナルを開き、下記コマンドを実行する。
python3 hello.py
するとHello World
の文字が表示される。

tkinterのコードを書く
# tkinterライブラリの読み込み
import tkinter
# ウィンドウの作成と、Tkinterオブジェクトの取得
window = tkinter.Tk()
# ウィンドウのループ処理
window.mainloop()
tkinterでウィンドウを作成するには上記のコードが必須となる。
ウィンドウサイズや色を設定する
解説略。下記リンクを参照。

Buttonを作成・配置する
# tkinterライブラリの読み込み
import tkinter
# ウィンドウの作成、Tkinterオブジェクトの取得
window = tkinter.Tk()
# ボタンオブジェクトの生成と取得
btn1 = tkinter.Button(window, text="1")
btn2 = tkinter.Button(window, text="2")
btn3 = tkinter.Button(window, text="3")
# packメソッドでウィンドウにボタンを配置
btn1.pack()
btn2.pack()
btn3.pack()
# ウィンドウのループ処理
window.mainloop()
配置場所を変更する
# ボタンオブジェクトの生成と取得
btn1 = tkinter.Button(window, text="1")
btn2 = tkinter.Button(window, text="2")
btn3 = tkinter.Button(window, text="3")
btn4 = tkinter.Button(window, text="4")
# packメソッドでウィンドウにボタンを配置
btn1.pack(side=tkinter.LEFT)
btn2.pack(side=tkinter.RIGHT)
btn3.pack(side=tkinter.TOP)
btn3.pack(side=tkinter.BOTTOM)

文字を作成・配置する
Label
一行のテキストを配置したい場合はLabelを使用する。
import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text="テキスト")
label.pack()
root.mainloop()
Message
複数行のテキストを配置したい場合はMessageを使用する。
import tkinter as tk
root = tk.Tk()
label = tk.Message(root, text="Hello World")
label.pack()
root.mainloop()
フォントサイズの変更
LabelやMessageの生成時にオプションを指定する。
label = tk.Label(root, text="テキスト", font=("",20))
label.pack()
label = tk.Message(root, text="Hello World", font=("",20))
label.pack()

イベントを設定する
bind
ボタン等を押したときに発火するイベント。
after
指定秒数経過後に発火するイベント。
補足
mainloopについて
updateについて

tkのウィジェット一覧
- Button
- Checkbutton
- Entry
- Frame
- Label
- LabelFrame
- Menubutton
- PanedWindow
- RadioButton
- Scale
- Scrollbar
- Spinbox
- Canvas
- Listbox
- Menu
- Message

配置をより詳細に決定する
place
メソッドを使用する。
grid
メソッドを使用する。
Frame
という入れ物を使って複数のものを同時に配置する。

Pythonで経過時間を計測する
import time
# 開始時刻を取得
start = time.time()
# 1.5秒待つ
time.sleep(1.5)
# 終了時刻を取得
end = time.time()
# 経過時間を計算
time_diff = end - start
# 経過時間を表示
print(time_diff)
# => 1.5004217624664307

配列からランダムな値を取り出す
配列からランダムな値を取り出す場合、random.choice
を使用する。
import random
data = [
"犬",
"猫",
"ライオン",
"熊",
]
value = random.choice(data)
print(value)
ランダムな数字を生成する
import random
value = random.randint(-10000, 10000)
print(value)
このスクラップは2024/07/05にクローズされました