tkinter -- Toplevel

2018-08-03 10:32:57 浏览数 (2)

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

创建简单的Toplevel

代码:

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

效果:

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

设置 Toplevel 的属性

title设置标题

geometry 设置宽和高

代码:

代码语言:javascript复制
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()

效果:

使用 Toplevel 自己制作提示框

代码:

代码语言:javascript复制
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()

效果:

0 人点赞