Tkinter的Menu与Messagebox

菜单控件Menu

在当前界面的左上角创建一个菜单,可创建二级菜单、三级菜单等等

具体语法:

创建一个菜单,并命名为menu

menu=tkinter.Menu(root)

创建menu菜单的列表,并命名为filemenu 

filemenu=tkinter.Menu(menu,tearoff=0)

在filemenu中增加一个‘菜单’功能 

menu.add_cascade(label='菜单',menu=filemenu)

创建一个一级菜单功能'保存',command为单机'保存'时触发的事件

filemenu.add_command(label='保存',command=Save)

创建一个分隔线,默认在功能'保存'下面

New_tk_tk.add_separator()   

创建一个二级菜单功能‘新建’

New_tk_tk=tkinter.Menu(filemenu,tearoff=0)
filemenu.add_cascade(label='新建',menu=New_tk_tk)

在‘新建’里面创建两个功能‘新建界面’和‘新建游戏’

New_tk_tk.add_command(label='新建界面',command=New_tk)
New_tk_tk.add_separator()   
New_tk_tk.add_command(label='新建游戏',command=None)

对话框控件Messagebox

Messagebox控件用于提示用户某个操作,方便引导用户执行下一步操作

具体函数: 

创建一个提示对话框

tkinter.messagebox.showinfo('提示','hello')

创建一个警告对话框

tkinter.messagebox.showwarning('提示','有警告')

创建一个错误对话框

tkinter.messagebox.showerror('提示','出错啦')

创建一个可选择的对话框

tkinter.messagebox.askyesno('提示','确定吗')

程序设计

完整程序

import tkinter as tk
import tkinter.messagebox
root=tk.Tk()
root.title('Tkinter')
width=500
height=300
screenwidth=root.winfo_screenwidth()
screenheight=root.winfo_screenheight()
x=(screenwidth-width)//2
y=(screenheight-height)//2
root.geometry('%dx%d+%d+%d'%(width,height,x,y))
L=tk.Label(root,text='     ',bg='white',fg='blue',width=10,height=2)
L.place(x=200,y=100)
var=tk.StringVar()
def New_tk():
    tk.messagebox.showinfo('提示','创建成功!')
    new_tk=tk.Toplevel(root)
    new_tk.geometry('%dx%d+%d+%d'%(width,height,x,y))
    new_tk.title('新的界面')
def Save():
    tk.messagebox.showinfo('提示','保存成功!')
    var.set('保存成功!')
    L.config(textvariable=var)
def Quit():
    choice=tk.messagebox.askyesno('提示','确定要退出吗')
    if choice:
        var.set('退出成功!')
    else:
        var.set('退出失败!')
    L.config(textvariable=var)
menu=tk.Menu(root)
filemenu=tk.Menu(menu,tearoff=0)
editmenu=tk.Menu(menu,tearoff=0)
menu.add_cascade(label='菜单',menu=filemenu)
menu.add_cascade(label='帮助',menu=editmenu)
New_tk_tk=tk.Menu(filemenu,tearoff=0)
filemenu.add_cascade(label='新建',menu=New_tk_tk)
filemenu.add_separator()   
New_tk_tk.add_command(label='新建界面',command=New_tk)
New_tk_tk.add_separator()   
New_tk_tk.add_command(label='新建游戏',command=None)
filemenu.add_command(label='保存',command=Save)
filemenu.add_separator()   
filemenu.add_command(label='退出',command=Quit)
root.config(menu=menu)
root.mainloop() 

运行结果

猜你喜欢

转载自blog.csdn.net/m0_68111267/article/details/128734395