[Python] 纯文本查看 复制代码
import tkinter as tk
from tkinter import messagebox
# 问题和答案列表
questions = [
{
"question": "中华人民共和国国旗的名称是什么?",
"options": ["五星红旗", "青天白日旗", "九星旗", "八卦旗"],
"answer": "五星红旗"
},
{
"question": "中华人民共和国国旗旗面的红色象征着什么?",
"options": ["光明", "革命", "和平", "希望"],
"answer": "革命"
},
{
"question": "中华人民共和国国旗上最大的五角星代表什么?",
"options": ["工人阶级", "农民阶级", "中国共产党", "城市小资产阶级"],
"answer": "中国共产党"
},
{
"question": "中华人民共和国国旗上四颗小五角星各有一尖正对着大星的中心点,这表示什么?",
"options": ["围绕一个中心而团结", "表示四季", "表示四方", "表示四种社会阶层"],
"answer": "围绕一个中心而团结"
},
{
"question": "中华人民共和国国旗设计者是谁?",
"options": ["梁思成", "曾联松", "林徽因", "徐悲鸿"],
"answer": "曾联松"
},
{
"question": "中华人民共和国国旗第一次升起是在什么时间?",
"options": ["1949年10月1日", "1949年9月30日", "1950年1月1日", "1948年12月31日"],
"answer": "1949年10月1日"
},
{
"question": "中华人民共和国国旗的长宽比例是多少?",
"options": ["3:2", "4:3", "5:4", "2:1"],
"answer": "3:2"
},
{
"question": "国旗法规定,全日制学校,除寒假、暑假和( )外,应当每日升挂国旗。",
"options": ["星期日", "法定节假日", "休息日", "星期六"],
"answer": "休息日"
},
{
"question": "在直立的旗杆上升降国旗,应当徐徐升降。升起时,必须将国旗升至杆顶;降下时,( )使国旗落地。",
"options": ["不得", "可以", "允许", "有时可以"],
"answer": "不得"
},
{
"question": "中华人民共和国国旗中的五颗五角星采用黄色是为了( )。",
"options": ["在红地上显出光明", "美观", "代表炎黄子孙", "与国际接轨"],
"answer": "在红地上显出光明"
}
]
# 初始化得分
score = 0
question_index = 0
def check_answer():
global score, question_index
selected_option = var.get()
if questions[question_index]["options"][selected_option] == questions[question_index]["answer"]:
score += 1
messagebox.showinfo("正确", "回答正确!继续加油!")
else:
messagebox.showerror(
"错误", f"回答错误,正确答案是:{questions[question_index]['answer']}")
question_index += 1
if question_index < len(questions):
show_question()
else:
show_result()
def show_question():
question_label.config(text=questions[question_index]["question"])
for i in range(4):
option_buttons.config(text=questions[question_index]["options"])
var.set(-1)
def show_result():
messagebox.showinfo("游戏结束", f"游戏结束,你的得分是:{score}/{len(questions)}")
root.destroy()
# 创建主窗口
root = tk.Tk()
root.title("爱国主义知识问答游戏--丁彦辰")
# 显示问题的标签
question_label = tk.Label(root, text="", wraplength=300)
question_label.pack(pady=20)
# 单选按钮变量
var = tk.IntVar()
var.set(-1)
# 选项按钮
option_buttons = []
for i in range(4):
button = tk.Radiobutton(root, text="", variable=var, value=i)
button.pack(pady=5)
option_buttons.append(button)
# 提交答案按钮
submit_button = tk.Button(root, text="提交答案", command=check_answer)
submit_button.pack(pady=20)
# 显示第一个问题
show_question()
# 运行主循环
root.mainloop()