tkinter -- Toplevel

发布时间:2018-06-06 19:48:43编辑:Run阅读(4623)

    TopLevel 与 Frame 类似,但它包含窗体属性(如 Title)

    创建简单的Toplevel

    代码:

    import tkinter as tk
    root = tk.Tk()
    t1 = tk.Toplevel()
    # 为了区别 root 和 tl,我们向 tl 中添加了一个 Label
    tk.Label(t1, text='hello label').pack()
    root.mainloop()

    效果:

    blob.png

    运行结果生成了两个窗体,一个是 root 启动的,另一个则是 Toplevel 创建的,它包含有一个 label;关闭 tl则没有退出程序,Tk 仍旧工作;若关闭 Tk,整个 Tk 结束 tl 也结束,它不能单独存在



    设置 Toplevel 的属性

    title设置标题

    geometry 设置宽和高

    代码:

    import tkinter as tk
    root = tk.Tk()
    t1 = tk.Toplevel()
    # 设置t1的标题
    t1.title('hello Toplevel')
    
    # 设置t1的宽和高
    t1.geometry('400x300')
    # 为了区别 root 和 tl,我们向 tl 中添加了一个 Label
    tk.Label(t1, text='hello label').pack()
    root.mainloop()

    效果:

    blob.png



    使用 Toplevel 自己制作提示框

    代码:

    import tkinter as tk
    root = tk.Tk()
    mbyes, mbyesno, mbyesnocancel, mbyesnoabort = 1, 2, 3, 4
    # 定义一个消息对话框,依据传入的参数不同,弹出不同的提示信息
    def messagebox():  # 没有使用传参
        mbtype = mbyesno
        textshow = 'yesno'
        if mbtype == mbyes:
            textshow = 'yes'
        elif mbtype == mbyesno:
            textshow = 'yesno'
        elif mbtype == mbyesnocancel:
            textshow = 'yesnocancel'
        elif mbtype == mbyesnoabort:
            textshow = 'yesnoabort'
        t1 = tk.Toplevel(height=100, width=300)
        tk.Label(t1, text=textshow).pack()
        
    # 由 Button 来启动这个消息框,因为它使用了空的回调函数,故 messageBox 改为了无参数形式,使用了固定值yesno
    tk.Button(root, text='click me', command=messagebox).pack()
    root.mainloop()

    效果:

    blob.png

关键字

上一篇: tkinter -- PanedWindow

下一篇: tkinter -- Text(1)