Creating new
toplevel
windows works almost exactly same as creating new widgets.
顶层窗口是使用
Toplevel
函数创建的:
t = Toplevel(parent)
与常规小部件不同,您不必“网格化”顶层即可显示在屏幕上。创建顶层后,您可以在其中添加子部件并像在主窗口中一样将它们网格化。换句话说,toplevel 的行为与自动创建的根窗口完全一样。
销毁窗口使用方法:
window.destroy()
您可以使用 tkinter.Toplevel() 命令在 tkinter 中打开新窗口。
import tkinter as tk
class Gui:
"""Gui class"""
def __init__(self):
self.root = tk.Tk()
self.new_window = tk.Button(master=self.root, text="Open new window", width=20, pady=4, command=self.new_window)
self.new_window.pack()
self.root.mainloop()
def new_window(self):
"""Create a new top level window"""
new_window = tk.Toplevel()
tk.Label(master=new_window, text="This is a new window").pack()
if __name__ == '__main__':
Gui()
你可以创建一个函数来打开一个新窗口,然后将它绑定到那个
Label
,例如:
import tkinter as tk
def newWindow():
# Window object (top level)
newWindow = Toplevel(master)
# Title
newWindow.title("New Window 1")
# Geometry
newWindow.geometry("300x300")
root = tk.Tk()
label = tk.Label(text="Hello!", width=50, height=10, master=root)
label.pack()
label.bind("<Button-1>", newWindow)
但是我们如何编写代码使新窗口定义存在于不同的 PY 文件中?如果我们有很多窗口应用程序,我们不想将所有代码都写在一个 PY 文件中......