Python:英単語テストver1.1(ポップアップ画面入力)ソースコード付き

こんにちは。以前作った英単語テストをベースにポップアップ入力できるようにつくり変えたものです。

Pythonコード

以下のコードを実行するとポップアップが表示され英単語テストができます。

python
import tkinter as tk

class CustomDialog:
    def __init__(self, parent, prompt):
        self.parent = parent
        self.prompt = prompt
        self.input_word = None

        self.top = tk.Toplevel(parent)
        self.top.title("日本語に合う英単語を入力してください")

        # ウィンドウの表示位置を指定
        self.top.geometry("+{}+{}".format(parent.winfo_x() + 50, parent.winfo_y() + 50))

        # ウィンドウのサイズを設定
        self.top.geometry("400x150")

        self.label = tk.Label(self.top, text=self.prompt, font=("Helvetica", 14))
        self.label.pack(pady=10)

        self.entry = tk.Entry(self.top, font=("Helvetica", 14))
        self.entry.pack(pady=10)
        self.entry.bind("<Return>", self.on_enter)

        self.ok_button = tk.Button(self.top, text="OK", command=self.on_ok, font=("Helvetica", 12))
        self.ok_button.pack(pady=10)

    def on_enter(self, event):
        self.on_ok()

    def on_ok(self):
        self.input_word = self.entry.get()
        self.top.destroy()

word = [
    "少年", "boy",
    "車", "car",
    "母", "mother",
    "弟", "brother",
    "犬", "dog",
    "猫", "cat",
    "サッカー", "soccer",
    "野球", "baseball",
    "日本", "Japan",
    "父", "father"
]

count = 0
while count < 10:
    tword = word[count * 2]

    root = tk.Tk()
    root.withdraw()

    custom_dialog = CustomDialog(root, tword)
    root.wait_window(custom_dialog.top)

    input_word = custom_dialog.input_word

    if input_word is None:
        print("ユーザーによってダイアログが閉じられました。")
        break

    if input_word == word[count * 2 + 1]:
        print('正解です。')
    else:
        print('不正解です。正解は%s' % (word[count * 2 + 1]))

    count += 1

# ループが終了したらメインウィンドウを閉じる
root.destroy()

以下の画像は実行画面のサンプルです。

関連記事

Pythonで英単語テストver1.0 ソースコード付き

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)