0

我对下面的代码有点困难。基本上,我希望代码在我按下 Enter 按钮时打开 window2 并同时关闭 window1,这样只有一个窗口而不是两个。

代码是...

from tkinter import *  

def window1():

    window = Tk()
    window.title("Welcome")

    f = Frame()
    f.pack()

    label1 = Label(window, text = "Welcome to the random window")
    label1.pack()

    button1 = Button(window, text = "Enter...", command = window2)
    button1.pack()

def window2():

    screen = Tk()
    screen.title("Pop-Up!")

    fr = Frame()
    fr.pack()

    label2 = Label(screen, text = "This is a pop-up screen!")
    label2.pack()

    button2 = Button(screen, text = "Return", command = window1)
    button2.pack()

window1()
4

2 回答 2

2

这是“坏的”,因为您使用了两个Tk. 尝试使用TopLevels。

import tkinter as tk

def window1():
    window = tk.Toplevel(root)
    window.title("Welcome")

    # etc etc ...

    tk.Button(window,text="Enter...",command=lambda: window2(window)).pack()

def window2(old_window):
    old_window.destroy()
    # window2 stuff

root = tk.Tk()
root.iconify() # to minimize it, since we're just using Toplevels on top of it
window1()
root.mainloop()
于 2014-03-20T20:34:39.273 回答
0

当您使用该Tk()函数时,您正在创建 Tcl/tkinter 解释器的新实例。而是使用Toplevel()which 将在当前解释器中创建一个新窗口。

于 2014-03-21T04:41:49.870 回答