Python 3 – Tkinter Toplevel

Python 3 – Tkinter Toplevel

Tkinter是Python中一个用于GUI编程的标准模块,它包含许多类和方法,提供了在图形用户界面上创建图形组件(例如按钮、标签、文本框、列表框等)的功能。在Tkinter中,Toplevel组件是一个子窗口,也是一个独立的容器,它可以包含自己的组件。

本文将介绍如何在Python 3中使用Tkinter的Toplevel组件来创建子窗口,并向这个子窗口中添加组件并设置其属性。

创建Toplevel窗口

在Tkinter中,使用Toplevel类来创建子窗口。Toplevel构造函数的基本用法如下:

top = Toplevel(master, **options)

其中,master表示Toplevel窗口的主窗口,options是一个可选参数字典,用于设置窗口的属性。例如,下面的代码创建一个新的Toplevel窗口,并将其作为主窗口的子窗口:

    import tkinter as tk

    root = tk.Tk()
    root.title('Main Window')

    # 创建一个新的Toplevel窗口
    top = tk.Toplevel(root)
    top.title('Sub Window')

    root.mainloop()

向Toplevel窗口中添加组件

Toplevel窗口是一个独立的容器,它可以包含自己的组件。下面的代码演示如何向一个Toplevel窗口中添加Label、Entry和Button组件:

    import tkinter as tk

    def showinfo():
        print('Your name is:', name.get())
        print('Your age is:', age.get())

    root = tk.Tk()
    root.title('Main Window')

    # 创建一个新的Toplevel窗口
    top = tk.Toplevel(root)
    top.title('Sub Window')

    # 在Toplevel窗口中添加组件
    tk.Label(top, text='Name:').grid(row=0, column=0)
    name = tk.Entry(top)
    name.grid(row=0, column=1)

    tk.Label(top, text='Age:').grid(row=1, column=0)
    age = tk.Entry(top)
    age.grid(row=1, column=1)

    tk.Button(top, text='Submit', command=showinfo).grid(row=2, column=0, columnspan=2)

    root.mainloop()

上述代码中,先定义了一个showinfo()函数,用于显示用户输入的信息。然后创建了一个新的Toplevel窗口,并在其中添加了Label、Entry和Button组件。

Toplevel窗口的属性设置

和其他Tkinter组件一样,Toplevel窗口也有众多的属性可以设置。下面的代码演示如何设置Toplevel窗口的大小、位置、背景色和大小不可改变的属性:

    import tkinter as tk

    root = tk.Tk()
    root.title('Main Window')

    # 创建一个新的Toplevel窗口
    top = tk.Toplevel(root)
    top.title('Sub Window')

    # 设置Toplevel窗口的属性
    top.geometry('300x200+500+200')  # 设置大小和位置
    top.configure(bg='blue')  # 设置背景色
    top.resizable(False, False)  # 设置大小不可改变

    root.mainloop()

上述代码中,设置了Toplevel窗口的大小、位置、背景色和大小不可改变的属性。执行上述代码,会弹出一个蓝色的子窗口,大小为300×200,位置在主窗口的右上角:

Toplevel窗口的生命周期

Toplevel窗口的生命周期和其他Tkinter组件类似,当主窗口被销毁时,所有的Toplevel窗口也会被销毁。下面的代码演示了如何在Toplevel窗口关闭时执行一些操作:

    import tkinter as tk

    def on_closing():
        print('Closing Toplevel Window')
        top.destroy()

    root = tk.Tk()
    root.title('Main Window')

    # 创建一个新的Toplevel窗口
    top = tk.Toplevel(root)
    top.title('Sub Window')

    # 绑定关闭事件
    top.protocol('WM_DELETE_WINDOW', on_closing)

    root.mainloop()

上述代码中,当用户关闭Toplevel窗口时,会调用on_closing()函数。在该函数中,我们可以执行一些自定义的操作,例如保存数据等。执行上述代码,并关闭子窗口时,会在控制台输出如下信息:

Closing Toplevel Window

结论

本文介绍了Tkinter中Toplevel窗口的基本用法,包括创建Toplevel窗口、向Toplevel窗口中添加组件、设置Toplevel窗口的属性和处理Toplevel窗口的生命周期。掌握了这些内容之后,你就可以使用Tkinter的Toplevel组件来创建一个完整的GUI应用程序了。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程