Как получить значения, назначенные для правильных и общих чисел, для обновления, когда пользователь вводит свой ответ? - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть файл Python, который при запуске открывает окно для простой практики добавления. Он запрашивает у пользователя их ввод, и если сумма верна, будет выводиться «Верно!» и "Ой!" за неверно. Ниже всего этого находится счетчик, который отслеживает правильное число из общего числа. Тем не менее, в настоящий момент оба числа остаются нулевыми, когда пользователь вводит свои данные. Какие изменения необходимо внести в функцию ClicktheButton1, чтобы эта программа работала правильно? Спасибо.

Вывод будет выглядеть как "2 из 4 правильных" в окне, обновляя после каждой новой проблемы.

from tkinter import *
import random as rn 
window = Tk()
window.geometry('350x350')
window.title("C200")
x = rn.randint(0,100)
y = rn.randint(0,100)
correct, incorrect = 0,0

myLabel = Label(window, text="{0}+{1}=".format(x,y), font=("Arial Bold", 15))
myLabel.grid(column=0, row=0)

myLable2 = Label(window, text = "",font=("Arial Bold", 15))
myLable2.grid(column=0, row=5)

mylabel3 = Label(window,text = "0 out of 0 correct",font=("Arial Bold", 15)) 
mylabel3.grid(column=0, row=10)

mytxt = Entry(window, width=12)
mytxt.grid(column=1,row=0)

def ClicktheButton1():


    global x
    global y

    global correct
    global incorrect


    myguess = int(mytxt.get())

    if x + y == myguess:
        myLable2.configure(text = "Right!")
        correct += 1
    else:
        myLable2.configure(text = "Oops!")
        incorrect += 1



    x = rn.randint(0,100)
    y = rn.randint(0,100)
    mytxt.focus()
    mytxt.delete(0,END)
    myLabel.configure(text = "{0}+{1}=".format(x,y))

btn1 = Button(window, text="check", command = ClicktheButton1)
btn1.grid(column=0, row=7)

def ClicktheButton2():
    window.destroy()

btn1 = Button(window, text="Quit", command = ClicktheButton2)
btn1.grid(column=400, row=400)


window.mainloop()

1 Ответ

0 голосов
/ 21 февраля 2020

Вы должны изменить текст в mylabel3 так же, как при изменении текста в myLabel - и даже в том же месте. Я не знаю, почему у вас есть проблемы с этим.

 myLabel.configure(text = "{0}+{1}=".format(x,y))

 mylabel3.configure(text="{0} of {1} correct".format(correct, correct+incorrect))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...