Tkinter的Menu与Messagebox

news2024/9/23 23:34: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.coloradmin.cn/o/176558.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jar包导入失败/配置国内源的方法

注意:idea 的settings分为当前项目设置和新建项目设置两个部分,注意一些设置这两个地方都要调整。下面的步骤 修改好settings后,new projects 里的settings也要同样方法进行修改Maven中央仓库默认使用的是国外的,而国外访问速度很慢&#xff…

SpringBoot基础入门

简介 官网:https://spring.io/projects/spring-boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。 SpringBoot不是Spring官方的框架模式,而是一个团队在Spring4.0版本上二次开发并开源…

《深入浅出计算机组成原理》学习笔记 Day8

加法器1. 异或门与半加器2. 全加器3. 总结参考1. 异或门与半加器 异或门就是实现一个最简单的整数加法所需要使用的基本门电路。 当输入两位都是 11 的时候,还需要向更左侧的一位进行进位。这个就对应一个与门,也就是当加数和被加数都是 1 的时候&…

【数据结构之二叉树系列】二叉树的基本知识

目录前言一、树1、树的相关概念(1)结点(2)结点的度(3)叶结点(4)分支结点(5)父亲结点(6)子节点(7)树的度&#…

Java标准输入输出流(in/out)

文章目录前言标准输入流标准输出流前言 Java通过系统类System实现标准输入/输出的功能,在Java中输入输出数据一般(图形化界面例外)要用到标准输入输出流 System.in 标准输入:通常指从键盘输入数据System.out 标准输出&#xff1…

VueJs中如何使用Teleport组件

前言在DOM结构相对比较复杂,层级嵌套比较深的组件内,需要根据相对应的模块业务处理一些逻辑,该逻辑属于当前组件但是从整个页面应用的视图上看,它在DOM中应该被渲染在整个vue应用外部的其他地方,不能影响组件的结构比较常见的应用场景:就是全屏的模态框,控制元素的位置,也是可以…

分享124个ASP源码,总有一款适合您

ASP源码 分享124个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 124个ASP源码下载链接:https://pan.baidu.com/s/1MLzeod5DblXbW3sZAeTsEQ?pwd9jfe ​​​​​​​…

连续系统的数字PID控制仿真-2

被控对象为三阶传递函数,采用Simulink模块与M函数相结合的形式,利用ODE45的方法求解连续对象方程,主程序由Simulink模块实现,控制器由M函数实现。输入指令信号为正弦信号0.05sin(2Tt)。采用PID方法设计控制器,其中kp …

casbin权限和配置文件的理解

官方文档 基础权限模型 下图为我基于个人理解画出来的(关于多租户RBAC模型可能有误) 发现一篇博客讲的还行Casbin权限模型,看他的权限系统设计模型分析部分 casbin配置文件内容的结构解释 注意matchers可以设置多个。我在知道这个之前一直疑惑为什么需要policy_…

【设计模式】我终于读懂了外观模式。。。

今天是正月初二,在这里给大家拜年啦! 祝愿大家:兔年大吉大利,兔年顺顺利利,兔年快快乐乐,兔气十足十足,兔年富富满堂,兔年财源广进,兔年步步高升,兔年梦想成真…

【大数据hive】hive ddl语法使用详解

一、前言 DDL,也叫数据定义语言 (Data Definition Language, DDL),是SQL语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言,这些数据库对象包括database、table等,使用过mysql的同学应该对此很…

抗积分饱和PID控制算法及仿真

积分饱和现象所谓积分饱和现象是指若系统存在一个方向的偏差,PID 控制器的输出由于积分作用的不断累加而加大,从而导致执行机构达到极限位置Xmax(例如阀门开度达到最大),如图所示,若控制器输出u(k)继续增大,阀门开度不…

STL - 常用算法

常用遍历算法 for_each #include <algorithm> #include <functional> #include <iostream> #include <vector>using namespace std;//常用遍历算法 - for_each//普通函数 void print01(int val) {cout << val << " "; } //仿函数…

【每日一题Day95】LC1815得到新鲜甜甜圈的最多组数 | 状态压缩dp 记忆化搜索

得到新鲜甜甜圈的最多组数【LC1815】 有一个甜甜圈商店&#xff0c;每批次都烤 batchSize 个甜甜圈。这个店铺有个规则&#xff0c;就是在烤一批新的甜甜圈时&#xff0c;之前 所有 甜甜圈都必须已经全部销售完毕。给你一个整数 batchSize 和一个整数数组 groups &#xff0c;数…

LeetCode刷题模版:187-189、198-200

目录 简介187. 重复的DNA序列188. 买卖股票的最佳时机 IV【未理解】189. 轮转数组198. 打家劫舍199. 二叉树的右视图200. 岛屿数量结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简…

【论文翻译】Attention Is All You Need

【论文】Attention is All you Need (neurips.cc) 摘要 主要的序列转换模型是基于复杂的循环或卷积神经网络&#xff0c;其中包括一个编码器和一个解码器。表现最好的模型还通过注意机制连接编码器和解码器。我们提出了一个新的简单的网络架构&#xff0c;Transformer&#xf…

线程常用方法及常见状态

终止线程应该怎么终止一个线程呢&#xff1f;当线程完成任务时。通过使用变量来控制run方法退出的方式停止线程&#xff0c;即通知方式。这里详细介绍一下2的方式。在A线程依靠变量循环跑的过程ing&#xff0c;主线程通过修改A线程的变量&#xff0c;来控制线程终止。为A线程中…

SpringBoot配置文件详解

简介 SpringBoot全局配置文件默认为src/main/resources下的application.properties&#xff0c;后缀可以改为yml&#xff0c; 如果application.yml和application.properties两个配置文件都存在&#xff0c;那么&#xff0c;properties优先级更高 官网(Spring Boot 全部配置项)&…

01_kobject和ktype创建设备文件和设备目录

总结:创建设备文件的方法 设备文件属性指的是 /sys/yyy/xxx yyy:代表这个设备的目录 xxx:代表这个驱动设备的各种属性,我们可以直接操控属性来控制这个设备 比如之前常见的 echo 5 > /sys/led/brightness 直接操作这个属性来更改led的亮度 1 创建设备kobj对象,绑定目录 k…

C语言中不定参数 ... 的语法、函数封装

文章目录Intro语法测试依赖库新函数使用测试&#xff1a;遍历并打印不定参数中的值用两种方式封装函数&#xff1a;对多个int值求和总结Intro 有一天看C代码看到某个方法有这样的定义&#xff1a;在函数形参列表处&#xff0c;有...的写法&#xff0c;就像Java中的不定参数那样…