藏语背单词小程序Python代码示例-图形界面版本

在上一篇文章里,我们实现了基于命令行界面的藏文背单词程序的功能,程序显示藏语词汇,用户输入中文释义。

在这篇文章里,我们尝试用图形界面来实现藏文背单词的程序,更好地实现用户交互。

下面是Python代码。在这段代码里我们使用了Tkinter库。Tkinter(Tcl/Tk interface)是 Python 的标准 GUI(图形用户界面)工具包,用于创建窗口、按钮、标签、文本框等 GUI 元素,并实现用户与程序的交互。

文章末尾我们给出了代码运行演示效果。

import tkinter as tk
from tkinter import messagebox
import random

# 定义单词列表,每个元素是一个元组,包含藏文单词和其对应的中文释义,以及测试时的4个选项
word_list = [
    ("ཀུ་ཤུ།", "苹果",("苹果","葡萄","桃子","西瓜")),
    ("ཁྱི།", "狗",("猫","狗","猴子","羊")),
    ("དམར་པོ།", "红色",("红色","黑色","黄色","紫色")),
    ("དཔྱིད་ཀ་", "春天",("春天","夏天","秋天","冬天")),
    ("ལྔ།", "五",("二","三","四","五"))
]

class VocabularyTestApp:
    def __init__(self, master):
        self.master = master
        self.master.title("藏文单词测试")
        self.master.geometry("250x300")  # 设置窗口大小
        self.current = ""
        self.current_word = ""
        self.correct_answer = ""
        self.score = 0
        self.attempts = 0

        self.word_label = tk.Label(master, text="", font=("Helvetica", 18))
        self.word_label.pack(pady=20)

        self.radio_var = tk.StringVar()

        self.radio_buttons = []
        for i in range(4):
            rb = tk.Radiobutton(master, text="", variable=self.radio_var, value="", font=("Helvetica", 14))
            rb.pack(pady=5)
            self.radio_buttons.append(rb)

        self.next_button = tk.Button(master, text="下一个", command=self.next_word)
        self.next_button.pack(pady=10)

        self.update_word()

    def update_word(self):
        self.attempts += 1

        # 从单词列表中移除上一个单词
        if self.current:
            word_list.remove((self.current))

        current = random.choice(word_list)
        self.current_word= current[0]
        self.correct_answer = current[1]
        self.all_answer = current[2]
        self.word_label.config(text=self.current_word)

        #random.shuffle(word_list)
        for i in range(4):
            self.radio_buttons[i].config(text=self.all_answer[i], value=self.all_answer[i])

        self.radio_var.set(None)  # 设置默认未选中状态

    def next_word(self):
        selected_answer = self.radio_var.get()
        if selected_answer == self.correct_answer:
            self.score += 1

        if self.attempts < 5:
            self.update_word()
            self.radio_var.set(None)  # 设置默认未选中状态
        else:
            messagebox.showinfo("测试结果", f"你的得分: {self.score}/{self.attempts},正确率: {self.score/self.attempts:.2%}")
            self.master.destroy()

def main():
    root = tk.Tk()
    app = VocabularyTestApp(root)
    root.mainloop()

if __name__ == "__main__":
    main()

藏文背单词窗体版

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值