Python Tkinter:在一个窗口上显示每个窗口

时间:2020-07-25 10:59:59

标签: python user-interface tkinter

有什么办法可以显示主窗口中的所有窗口?就像,顶级小部件在按下按钮后在一个窗口中一个接一个地出现。通常,顶级窗口小部件位于单独的窗口中,如何将其显示在一个窗口中。而且,如果可以的话,请给我一种不面向对象的方法,因为我不知道。但是任何答案对我都有好处。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过在主窗口内创建一个框架来完成所需的操作。以下示例未使用面向对象的方法,但请记住,您的应用程序越复杂,使用面向对象的方法就越合适。

# Import requrired libraries/packages
from tkinter import Tk, Button, Frame, X, TOP

def second_frame(root):
    frameTop=Frame(root, highlightthickness=0, bg="red", height=100)
    frameTop.pack(side=TOP,fill=X)

# Create intance of tkinter
root = Tk(className = 'Python Examples - Window 0')
root.geometry("600x700")
root.resizable(0,0)

# Button to make other content appear
next_button = Button(root, text= 'Next', height =1 , width=5, command=lambda: second_frame(root))
next_button.place(x=30, y =600)

root.mainloop()

编辑

如果只希望显示另一个窗口并使旧窗口消失,则可以使用以下代码:

# Import requrired libraries/packages
from tkinter import Tk, Checkbutton, IntVar, Button, Toplevel

def second_window(root):
    root1 = Tk(className = 'Python Examples - Window 1')
    root1.geometry("600x700")
    root1.resizable(0,0)
    root.withdraw()

# Create intance of tkinter
root = Tk(className = 'Python Examples - Window 0')
root.geometry("600x700")
root.resizable(0,0)

next_button = Button(root, text= 'Next', height =1 , width=5, command=lambda: second_window(root))
next_button.place(x=30, y =600)

root.mainloop()
相关问题