Closed10

tkinterでアプリをつくる

1111

環境構築

VS Codeをインストールする

プログラムを書くためのエディター(編集アプリ)をインストールする。
下記リンクからWindows向けのインストーラをダウンロードして実行。

https://code.visualstudio.com/download

VS Codeを日本語化

https://www.javadrive.jp/vscode/install/index4.html

Python3をインストールする

https://www.python.org/downloads/

インストール後、きちんとPythonが動作するかチェックする。

python --version
# or python3 --version

tkinterをインストールする

tkinterはPythonにデフォルトで付いてくるようなので、追加の操作は不要らしい。

1111

Pythonのコードを書く

プログラムを編集・保存するためのフォルダを作成する。
VS Codeで作成したフォルダを開く。
hello.pyを作成し、下記コードを書く。

hello.py
print("Hello World")

ターミナルを開き、下記コマンドを実行する。

python3 hello.py

するとHello Worldの文字が表示される。

1111

tkinterのコードを書く

# tkinterライブラリの読み込み
import tkinter

# ウィンドウの作成と、Tkinterオブジェクトの取得
window = tkinter.Tk()

# ウィンドウのループ処理
window.mainloop()

tkinterでウィンドウを作成するには上記のコードが必須となる。

ウィンドウサイズや色を設定する

解説略。下記リンクを参照。

https://qiita.com/karakuri-t910/items/6739986a8717eedd083c

1111

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)
1111

文字を作成・配置する

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()

https://natu-ym.com/python-window-text/

1111

tkのウィジェット一覧

  • Button
  • Checkbutton
  • Entry
  • Frame
  • Label
  • LabelFrame
  • Menubutton
  • PanedWindow
  • RadioButton
  • Scale
  • Scrollbar
  • Spinbox
  • Canvas
  • Listbox
  • Menu
  • Message
1111

配置をより詳細に決定する

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

1111

Pythonで経過時間を計測する

import time

# 開始時刻を取得
start = time.time()

# 1.5秒待つ
time.sleep(1.5)

# 終了時刻を取得
end = time.time()

# 経過時間を計算
time_diff = end - start

# 経過時間を表示
print(time_diff)
# => 1.5004217624664307
1111

配列からランダムな値を取り出す

配列からランダムな値を取り出す場合、random.choiceを使用する。

import random

data = [
    "犬",
    "猫",
    "ライオン",
    "熊",
]

value = random.choice(data)
print(value)

ランダムな数字を生成する

import random

value = random.randint(-10000, 10000)
print(value)
このスクラップは2024/07/05にクローズされました