Чтобы в конце теста появлялся только результат, а кнопок не было, нужно убрать кнопки «Правда», «Ложь» и «Ответить» и заменить их на кнопку, которая будет выводить результаты теста.
Для этого можно использовать метод
Button
из библиотеки
tkinter
с параметром который будет вызывать функцию, выводящую результаты теста.
command
можно создать новую функцию: она будет вызываться при нажатии на кнопку «Показать результаты»и будет выводить результаты теста вместо кнопок «Правда», «Ложь» и «Ответить».
show_results
Вот код:
from tkinter import*
window = Tk()
window.geometry("700x380")
window.title("Quiz викторина на знание Информационных Технологий")
facts =[ {"text":"Первый ПК появился в 1981 году", "right": 1}, {"text":"Среднестатистический пользователь компьютера моргает 2 раза в минуту", "right": 0}, {"text":"Первое электронное письмо было отправлено 1971 году", "right": 1}, {"text":"Является ли программирование наукой?", "right": 1}, {"text":"Правда ли, что первая глобальная сеть связи была создана с помощью электрического телеграфа?", "right": 1}, {"text":"Интерком – внутренняя корпоративная сеть, работающая на таких же технологиях, что и интернет", "right": 0}, {"text":"Верно ли, что в 2011 году в Египте родилась девочка по имени Facebook?", "right": 1}, {"text":"Правда ли, что день программиста отмечается 13 сентября", "right": 0}, {"text":"Является ли Стив Джобс основателем Microsoft?", "right": 0}, {"text":"Пасхалка - это секрет заложенный создателем ПО в программу?", "right": 1}, ]
num = 0
points = 0
def check():
global num, points
answer=var.get()
if bool(answer) == facts[num]["right"]:
points +=1
if num <len(facts)-1:
num +=1
fact["text"]=facts[num]["text"]
def show_results():
global points
fact["text"]=f"Ваш результат - верно {points} из 10"
true.destroy()
false.destroy()
button.destroy()
show_results_button.destroy()
label_title = Label(text="IT Диктант", font=("Arial", 24), fg="white", bg="red")
label_title.place(width=700, height=100, x=0, y=0)
fact = Message(text=facts[num]["text"], font=("Arial", 16), width=680)
fact.place(x=10, y=130)
var = IntVar()
true = Radiobutton(text="Правда", variable=var, value=1)
true.place(x=10, y=200)
false = Radiobutton(text="Ложь", variable=var, value=0)
false.place(x=10, y=220)
button = Button(text="Ответить", font=("Arial", 16), fg="white", bg="red", command=check)
button.place(x=120, y=203)
window.mainloop()
Этот код создает окно с заголовком "IT Диктант", текстовым сообщением с вопросом из викторины, кнопками "Правда" и "Ложь" для ответа на вопросы и кнопкой "Ответить" для подтверждения ответа. При нажатии на кнопку "Ответить" вызывается функция "check()", которая проверяет ответ на текущий вопрос и переходит к следующему вопросу, пока не будет задан последний вопрос из списка викторины. После последнего вопроса выводится сообщение с результатом викторины.