使用python与mysql实现简单的科目一考试有GUI界面
时间: 2024-03-22 18:39:06 浏览: 51
好的,下面是一个简单的使用 Python、MySQL 和 tkinter 库实现的带 GUI 界面的科目一考试程序示例。在此之前,您需要确保已经安装了 MySQL、Python 的 MySQL 库和 tkinter 库。
首先,创建一个名为 `exam` 的数据库和一个名为 `questions` 的表,其中包含问题、选项和答案字段,与上面示例程序相同。
然后,创建一个 GUI 界面,包括一个问题文本标签、四个选项单选按钮和一个提交按钮:
```python
import mysql.connector
import random
import tkinter as tk
# 连接到 MySQL 数据库
cnx = mysql.connector.connect(user='your_username', password='your_password', database='exam')
# 创建 tkinter 窗口
root = tk.Tk()
root.title("科目一考试")
# 从表中随机选择一道问题
cursor = cnx.cursor()
cursor.execute("SELECT * FROM questions ORDER BY RAND() LIMIT 1")
question = cursor.fetchone()
# 创建问题文本标签和四个选项单选按钮
question_label = tk.Label(root, text=question[1])
question_label.pack()
var = tk.IntVar()
option1 = tk.Radiobutton(root, text=question[2], variable=var, value=1)
option1.pack()
option2 = tk.Radiobutton(root, text=question[3], variable=var, value=2)
option2.pack()
option3 = tk.Radiobutton(root, text=question[4], variable=var, value=3)
option3.pack()
option4 = tk.Radiobutton(root, text=question[5], variable=var, value=4)
option4.pack()
# 定义提交按钮的回调函数
def submit():
# 检查答案是否正确
if var.get() == question[6]:
result_label.config(text="回答正确!")
else:
result_label.config(text="回答错误,正确答案是:{}".format(question[6]))
# 随机选择下一道问题
cursor.execute("SELECT * FROM questions ORDER BY RAND() LIMIT 1")
question = cursor.fetchone()
question_label.config(text=question[1])
option1.config(text=question[2], value=1)
option2.config(text=question[3], value=2)
option3.config(text=question[4], value=3)
option4.config(text=question[5], value=4)
# 创建提交按钮
submit_button = tk.Button(root, text="提交", command=submit)
submit_button.pack()
# 创建答案提示标签
result_label = tk.Label(root, text="")
result_label.pack()
# 启动 tkinter 窗口
root.mainloop()
# 关闭数据库连接
cursor.close()
cnx.close()
```
完整代码如上所示。希望这个示例程序能对您有所帮助!
阅读全文