在Tkin中打开后续窗口

2024-10-02 16:28:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我的代码在用户将字符串输入到Entry框后使用Tkinter打开一个新窗口。你知道吗

#First Window, Start or Information
def start():
    q1 = tkinter.Tk()
    q1.title("Sports")
    q1.geometry("500x170")
    q1.configure(bg='#00BFFF')
    event1 = tkinter.Label(q1, text="What Sports Event Did You Participate In? \n 1) Football \n 2) Hockey \n 3) Basketball \n 4) Badminton \n 5) Rounders", fg="#383A39", bg="#00BFFF", font=("Helvetica", 15))
    event1.pack()
    ans = tkinter.Entry(q1, width=80)
    ans.pack()
    def qu1():
        deranswer = ans.get()
        if deranswer == "football" or deranswer == "Football" or deranswer == "1":
            crr = tkinter.Label(q1, text="Thank You!", fg="green")
            crr.pack()
            team = tkinter.Tk()
            team.title("Team/Individual?")
            team.geometry("500x500")
            team.configure(bg='#00BFFF')
            event2 = tkinter.Label(team, text="Would You Like To Enter As A Team or Individual?", fg="#383A39", bg="#00BFFF")
            event2.pack()
            ans2 = tkinter.Entry(team, width=80)
            ans2.pack()
            def qu2():
                deranswer = ans2.get()
                if deranswer == "Team" or deranswer == "1":
                    total_score = 0
                    wins = 0
                    losses = 0
                    draws = 0
                    q3 = tkinter.Tk()
                    q3.title("Team Score")
                    q3 = tkinter.Label(window, text="Please Enter Your Team Name", fg="#383A39", bg="#00BFFFF")
                    ans3 = tkinter.Entry(q3, width=80)
                    ans3.pack()

我怎样才能做到这一点?你知道吗


Tags: ortexttkinterdeflabelteampacktk
2条回答

首先有一点提示:尤其是初学者,请把完整的代码传给我。问题可能在任何地方,从失败的主循环到错误的事件处理程序。

在输入字段中,我没有看到将qu1()绑定到按钮单击或回车键的行。qu1()永远不会被执行。你知道吗

您可以添加这样的按钮:Button(q1, text='Submit',command=qu1).pack()来创建按钮,ans.bind('<Key-Return>', qu1)来绑定条目的enter key事件。但是您必须用def qu1(event=None)替换def qu1(),因为单击事件信息可能被发送到函数qu1。你知道吗

另外,请不要使用嵌套的defs。这是一种糟糕的样式。您可以在主代码中创建它们。否则我建议您阅读python类。你知道吗

最后但并非最不重要的是,我的建议是看看tkinter消息框。出于您的目的,它们让您询问用户比示例代码更容易,甚至更“漂亮”。(如果我们能说那些窗户漂亮的话)。你知道吗

你从不调用下一个函数来工作。在用户输入他们想要的运动后,函数qu1不会被调用,因此不会运行额外的代码。您可以通过创建一个运行下一段代码的按钮来纠正这个问题。例如:

ans = tkinter.Entry(q1, width=80)
confirm = tkinter.Button(q1, width=10, text="Confirm", command=lambda: qu1())
ans.pack()
confirm.pack()

用户输入后,必须单击确认按钮才能运行下一个子例程。你知道吗

祝你好运!你知道吗

相关问题 更多 >