Python 我需要帮助来创建一个新的TKinter窗口,而不是扩展当前窗口

Python 我需要帮助来创建一个新的TKinter窗口,而不是扩展当前窗口,python,tkinter,time,Python,Tkinter,Time,这是我想尝试做的一个数学挑战的代码,它可以问你想要的任何问题 但它会不断扩展窗口,而不是创建一个新窗口,这也不会更新scorestr 关于如何让它“溶解”当前画布,然后用新问题和更新的分数关闭并重新打开更新的画布,有什么帮助吗 另外,如果有人知道如何在这个60秒计时器,它会帮助我很多 图中显示了我遇到的问题 请注意 仅在将整数转换为字符串后参考加号部分,其他部分尚未更新,因为加号仍然不起作用 # generate random integer values from random import

这是我想尝试做的一个数学挑战的代码,它可以问你想要的任何问题 但它会不断扩展窗口,而不是创建一个新窗口,这也不会更新scorestr

关于如何让它“溶解”当前画布,然后用新问题和更新的分数关闭并重新打开更新的画布,有什么帮助吗

另外,如果有人知道如何在这个60秒计时器,它会帮助我很多

图中显示了我遇到的问题

请注意 仅在将整数转换为字符串后参考加号部分,其他部分尚未更新,因为加号仍然不起作用

# generate random integer values
from random import randint
import tkinter as tk

score = 0

scorestr = ""

root = tk.Tk()


def game():

    for x in range(3):

        def f():
            global score
            score += 1
        for _ in range(1):
            symbol = randint(0, 0)

        # define symbol for equation

        if symbol == 0:
            maths = "plus"
            value1 = randint(0, 100)
            value2 = randint(0, 100)

        if symbol == 1:
            maths = "minus"
            value1 = randint(0, 100)
            value2 = randint(0, 100)

        if symbol == 2:
            maths = "times"
            value1 = randint(0, 12)
            value2 = randint(0, 12)

        if symbol == 3:
            maths = "divide"
            value1 = randint(1, 12)
            value2 = randint(1, 12)

        # generate some integers

        if value1 < value2:
            temp = value1
            value1 = value2
            value2 = temp
            temp == ""

        value1Str = str(value1)
        value2Str = str(value2)

        if maths == "plus":
            answer = value1 + value2

            canvas1 = tk.Canvas(root, width=400, height=300)
            canvas1.pack()

            entry1 = tk.Entry(root)
            canvas1.create_window(200, 140, window=entry1)

            def clickme():
                uanswer = entry1.get()
                uanswerint = int(uanswer)
                if uanswerint == answer:
                    label3 = tk.Label(root, text='Correct')
                    canvas1.create_window(200, 280, window=label3)
                    f()
                    scorestr = str(score)
                else:
                    label3 = tk.Label(root, text='Incorrect')
                    canvas1.create_window(200, 280, window=label3)
                root.after(1000, game)


            label1 = tk.Label(root, text="Score: " + scorestr)
            canvas1.create_window(200, 230, window=label1)

            label2 = tk.Label(root, text='What is ' + value1Str + ' + ' + value2Str)
            canvas1.create_window(200, 100, window=label2)

            button1 = tk.Button(text='Check Answer!', command=clickme)
            canvas1.create_window(200, 180, window=button1)

        if maths == "minus":
            answer = value1 - value2

            canvas1 = tk.Canvas(root, width=400, height=300)
            canvas1.pack()

            entry1 = tk.Entry(root)
            canvas1.create_window(200, 140, window=entry1)

            def clickme():
                uanswer = entry1.get()
                uanswerint = int(uanswer)
                if uanswerint == answer:
                    label3 = tk.Label(root, text='Correct')
                    canvas1.create_window(200, 280, window=label3)

                else:
                    label3 = tk.Label(root, text='Incorrect')
                    canvas1.create_window(200, 280, window=label3)
                quit()

            label1 = tk.Label(root, text=answer)
            canvas1.create_window(200, 230, window=label1)

            label2 = tk.Label(root, text='What is ' + value1Str + ' - ' + value2Str)
            canvas1.create_window(200, 100, window=label2)

            button1 = tk.Button(text='Check Answer!', command=clickme)
            canvas1.create_window(200, 180, window=button1)

        if maths == "times":
            answer = value1 * value2

            canvas1 = tk.Canvas(root, width=400, height=300)
            canvas1.pack()

            entry1 = tk.Entry(root)
            canvas1.create_window(200, 140, window=entry1)

            def clickme():
                uanswer = entry1.get()
                uanswerint = int(uanswer)
                if uanswerint == answer:
                    label3 = tk.Label(root, text='Correct')
                    canvas1.create_window(200, 280, window=label3)

                else:
                    label3 = tk.Label(root, text='Incorrect')
                    canvas1.create_window(200, 280, window=label3)
                quit()

            label1 = tk.Label(root, text=answer)
            canvas1.create_window(200, 230, window=label1)

            label2 = tk.Label(root, text='What is ' + value1Str + ' * ' + value2Str)
            canvas1.create_window(200, 100, window=label2)

            button1 = tk.Button(text='Check Answer!', command=clickme)
            canvas1.create_window(200, 180, window=button1)

        if maths == "divide":
            answer = value1 / value2

            canvas1 = tk.Canvas(root, width=400, height=300)
            canvas1.pack()

            entry1 = tk.Entry(root)
            canvas1.create_window(200, 140, window=entry1)

            def clickme():
                uanswer = entry1.get()
                uanswerint = int(uanswer)
                if uanswerint == answer:
                    label3 = tk.Label(root, text='Correct')
                    canvas1.create_window(200, 280, window=label3)

                else:
                    label3 = tk.Label(root, text='Incorrect')
                    canvas1.create_window(200, 280, window=label3)
                quit()

            label1 = tk.Label(root, text=answer)
            canvas1.create_window(200, 230, window=label1)

            label2 = tk.Label(root, text='What is ' + value1Str + ' / ' + value2Str)
            canvas1.create_window(200, 100, window=label2)

            button1 = tk.Button(text='Check Answer!', command=clickme)
            canvas1.create_window(200, 180, window=button1)

        root.mainloop()

game()


print (score)
#生成随机整数值
从随机导入randint
将tkinter作为tk导入
分数=0
scorestr=“”
root=tk.tk()
def game():
对于范围(3)内的x:
def():
全球得分
分数+=1
对于范围(1)内的uu):
symbol=randint(0,0)
#定义方程式的符号
如果符号==0:
数学=“加”
value1=randint(01100)
value2=randint(01100)
如果符号==1:
数学=“负”
value1=randint(01100)
value2=randint(01100)
如果符号==2:
数学=“时代”
value1=randint(0,12)
value2=randint(0,12)
如果符号==3:
数学=“除法”
value1=randint(1,12)
value2=randint(1,12)
#生成一些整数
如果值1<值2:
温度=值1
值1=值2
值2=温度
温度=“”
value1Str=str(value1)
value2Str=str(value2)
如果数学==“加”:
回答=值1+值2
canvas1=tk.Canvas(根,宽=400,高=300)
画布1.pack()
entry1=tk.Entry(根)
canvas1.create_window(200140,window=entry1)
def clickme():
uanswer=entry1.get()
uanswerint=int(uanswer)
如果uanswerint==回答:
label3=tk.Label(根,text='Correct')
canvas1.创建窗口(200280,窗口=标签3)
f()
scorestr=str(分数)
其他:
label3=tk.Label(根,text='error')
canvas1.创建窗口(200280,窗口=标签3)
root.after(1000,游戏)
label1=tk.Label(root,text=“Score:”+scorestr)
canvas1.创建窗口(200230,窗口=标签1)
label2=tk.Label(根,text='What is'+value1Str++'+value2Str)
canvas1.创建窗口(200100,窗口=标签2)
button1=tk.Button(text='Check Answer!',command=clickme)
画布1.创建窗口(200、180,窗口=按钮1)
如果数学==“负”:
答案=值1-值2
canvas1=tk.Canvas(根,宽=400,高=300)
画布1.pack()
entry1=tk.Entry(根)
canvas1.create_window(200140,window=entry1)
def clickme():
uanswer=entry1.get()
uanswerint=int(uanswer)
如果uanswerint==回答:
label3=tk.Label(根,text='Correct')
canvas1.创建窗口(200280,窗口=标签3)
其他:
label3=tk.Label(根,text='error')
canvas1.创建窗口(200280,窗口=标签3)
退出
label1=tk.Label(根,文本=答案)
canvas1.创建窗口(200230,窗口=标签1)
label2=tk.Label(根,text='What is'+value1Str+'-'+value2Str)
canvas1.创建窗口(200100,窗口=标签2)
button1=tk.Button(text='Check Answer!',command=clickme)
画布1.创建窗口(200、180,窗口=按钮1)
如果数学==“次数”:
答案=值1*2
canvas1=tk.Canvas(根,宽=400,高=300)
画布1.pack()
entry1=tk.Entry(根)
canvas1.create_window(200140,window=entry1)
def clickme():
uanswer=entry1.get()
uanswerint=int(uanswer)
如果uanswerint==回答:
label3=tk.Label(根,text='Correct')
canvas1.创建窗口(200280,窗口=标签3)
其他:
label3=tk.Label(根,text='error')
canvas1.创建窗口(200280,窗口=标签3)
退出
label1=tk.Label(根,文本=答案)
canvas1.创建窗口(200230,窗口=标签1)
label2=tk.Label(根,text='What is'+value1Str+'*'+value2Str)
canvas1.创建窗口(200100,窗口=标签2)
button1=tk.Button(text='Check Answer!',command=clickme)
画布1.创建窗口(200、180,窗口=按钮1)
如果数学==“除法”:
答案=值1/2
canvas1=tk.Canvas(根,宽=400,高=300)
画布1.pack()
entry1=tk.Entry(根)
canvas1.create_window(200140,window=entry1)
def clickme():
uanswer=entry1.get()
uanswerint=int(uanswer)
如果uanswerint==回答:
label3=tk.Label(根,text='Correct')
canvas1.创建窗口(200280,窗口=标签3)
其他:
label3=tk.Label(根,text='error')
canvas1.创建窗口(200280,窗口=标签3)
退出
label1=tk.Label(根,文本=答案)
canvas1.创建窗口(200230,窗口=标签1)
label2=传统标签(根,