📅  最后修改于: 2023-12-03 15:38:06.326000             🧑  作者: Mango
在 tkinter 中,我们可以使用 Checkbutton 和 Radiobutton 组件来创建多项选择测验。以下是一个示例代码片段,演示如何使用这些组件来创建一个简单的测验:
import tkinter as tk
class QuizApp:
def __init__(self, questions):
self.questions = questions
self.answers = {}
self.current_question = 0
self.window = tk.Tk()
self.window.title("Quiz App")
self.question_label = tk.Label(self.window, text=self.questions[self.current_question])
self.question_label.pack()
self.var = tk.StringVar()
for answer in ["True", "False"]:
rb = tk.Radiobutton(self.window, text=answer, variable=self.var, value=answer)
rb.pack()
self.submit_button = tk.Button(self.window, text="Submit", command=self.submit_answer)
self.submit_button.pack()
def submit_answer(self):
self.answers[self.current_question] = self.var.get()
self.current_question += 1
if self.current_question < len(self.questions):
self.question_label.config(text=self.questions[self.current_question])
else:
self.window.destroy()
def run(self):
self.window.mainloop()
questions = ["Is the sky blue?", "Is the grass green?", "Is the sun yellow?"]
app = QuizApp(questions)
app.run()
print(app.answers)
在上面的示例中,我们首先输入三个问题,然后创建了一个 QuizApp 类。在该类的构造函数中,我们初始化了一些变量,创建了一个 tk.Tk 窗口,并创建了一个 Label 组件,用于显示当前问题。接下来,我们创建了一个 Radiobutton 组件,其中每个选项都由一个单独的 Radiobutton 表示。我们还创建了一个 “Submit” 按钮,点击该按钮将用户的答案保存到 answers 字典中。当用户回答完所有问题后,我们使用 window.destroy() 方法关闭窗口并打印所有答案。
综上所述,使用 tkinter 在 python 中进行多项选择测验并不难,只需要使用 Checkbutton 和 Radiobutton 组件,以及一些简单的逻辑即可。