Tkinter的Menu与Messagebox

news/2025/1/16 0:56:22/

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

运行结果


http://www.ppmy.cn/news/18918.html

相关文章

代码随想录--字符串习题总结

代码随想录–字符串习题总结 1.LeetCode344 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1&…

【pytorch】.mul .add_ 和直接 + * 有什么区别

优点:in-place 操作节省内存空间 .mul() 和 .add_() 是 PyTorch 中的 in-place 操作,这意味着它们会直接在原变量上进行操作,而不会返回新的变量。相反,* 和 是 Python 的运算符,它们会返回新的变量,不会…

Node.js 操作MongoDB (Mongoose) 数据库

在讲Node.js通过使用mongoose模块来操作MongoDB数据库之前首先是关于MongoDB数据库的安装和MongoDB服务以及对MongoDB命令行的操作和可视化工具MongoDBCompass的一个基本使用;那么在这里已经准备好了关于MongoDB数据库的内容了: MongoDB数据库安装详细 &…

【ARM体系结构】之相关概念与公司简介

1、ARM相关的概念 机器码:计算机可以识别的0和1的组合。即高低电平的信号,1高电平信号,0低电平信号 汇编指令:编译器可以将汇编指令(存在代码段)编译成为机器码,执行汇编指令可以完成相应的汇编…

目标检测:Focal Loss

目标检测:Focal Loss前言Focal LossCross Entropybalanced Cross EntropyFocal Loss Definition前言 Focal loss这个idea来源于论文《Focal Loss for Dense Object Detection》,主要是为了解决正负样本、难易样本不平衡的问题。 Focal Loss Cross Entropy 在目标…

【Qt】如何使用QtCreator向工程添加文件

文章目录一、导读二、盘一盘文件模板(2-1)添加C/C文件(2-2)添加Modeling文件(2-3)添加Qt相关文件(2-4)添加GLSL相关文件(2-5)添加其他文件三、总结一、导读 …

零入门容器云实战之文章目录列表

建议: 1、网盘资源 零入门容器云网络实战 链接: https://pan.baidu.com/s/1nPLRkAwjItAHmtEU2T1F4g 提取码: rrpd 2、技术交流群 QQ群: 342498897 3、发布说明 绿色字体, 表示已经发布,可以观看 灰色字体, 表示未发布 发布频…

【Java IO流】缓冲流及原理详解

文章目录前言字节缓冲流原理字符缓冲流Java编程基础教程系列前言 前面我们已经学习了四种对文件数据操作的基本流,字节输入流,字节输出流,字符输入流,字符输出流。为了提高其数据的读写效率,Java中又定义了四种缓冲流…