Tkinter的Menu与Messagebox

简介: 菜单控件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() 

运行结果

1.png

目录
相关文章
[c++][记录]编译libusb-win32过程
[c++][记录]编译libusb-win32过程
528 0
|
监控 供应链 Java
【PMO项目管理】深入了解项目管理 | Stakeholder 利益相关者 | 利益相关者之间的立场差异
【PMO项目管理】深入了解项目管理 | Stakeholder 利益相关者 | 利益相关者之间的立场差异
645 0
|
设计模式 存储 uml
C++ 设计模式实战:外观模式和访问者模式的结合使用,派生类访问基类的私有子系统
C++ 设计模式实战:外观模式和访问者模式的结合使用,派生类访问基类的私有子系统
171 1
|
监控 Java API
使用Spring Boot构建微服务架构的最佳实践
使用Spring Boot构建微服务架构的最佳实践
|
数据可视化 C# 图形学
【推荐100个unity插件之18】Unity 新版输入系统Input System的基础使用
【推荐100个unity插件之18】Unity 新版输入系统Input System的基础使用
1075 0
C语言实现拉格朗日插值法
C语言实现拉格朗日插值法
HTML学习笔记(一)
HTML学习笔记
158 0
|
JavaScript 前端开发 API
js TinyMCE富文本
js TinyMCE富文本
211 0
|
Linux 调度
Linux系统Load Average解析
很多小伙伴在遇到某一接口服务性能问题时,比如说,TPS上不去、响应时间拉长、应用系统出现卡顿,某一请求出现超时等等现象,往往显得苍白无力,无从下手。 针对系统负载性能,很大一部分人潜意识会认为CPU使用率等同系统负载,或者直接反应系统负载情况,这种理解对吗?本文将从2个纬度合理进行分析系统负载以及CPU与Load Average之间的关联。
366 0
|
存储 安全 关系型数据库
MySQL大师:数据库管理的基础知识与技巧
MySQL大师:数据库管理的基础知识与技巧
239 0