第二部分 Python提高—GUI图形用户界面编程(七)

菜单组件

文章目录

  • 主菜单

GUI 程序通常都有菜单,方便用户的交互。我们一般将菜单分为两种:主菜单和快捷菜单(上下文菜单)。主菜单通常位于GUI 程序上方,通过鼠标右键单击某个组件对象而弹出的菜单,一般是与该组件相关的操作。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

主菜单

主菜单
主菜单一般包含:文件、编辑、帮助等,位于GUI 窗口的上面。创建主菜单一般有如下4步:

  1. 创建主菜单栏对象
menubar = tk.Menu(root)
  1. 创建菜单,并添加到主菜单栏对象
file_menu = tk.Menu(menubar)

menubar.add_cascade(label=”文件”,menu=file_menu)
3. 添加菜单项到2 步中的菜单

file_menu.add_command(label=”打开”)
file_menu.add_command(label=”保存”,accelerator=^p” command=mySaveFile)
file_menu.add_separator()
file_menu.add_command(label=”退出”)
  1. 将主菜单栏添加到根窗口
root[“menu”]=menubar
from tkinter import *
from tkinter.filedialog import *
from tkinter.colorchooser import *class Application(Frame):def __init__(self, master=None):super().__init__(master) # super()代表的是父类的定义,而不是父类    对象self.master = masterself.textpad = None # textpad 表示Text 文本框对象self.pack()self.createWidget()def createWidget(self):# 创建主菜单栏menubar = Menu(root)# 创建子菜单menuFile = Menu(menubar)menuEdit = Menu(menubar)menuHelp = Menu(menubar)# 将子菜单加入到主菜单栏menubar.add_cascade(label="文件(F)", menu=menuFile)menubar.add_cascade(label="编辑(E)", menu=menuEdit)menubar.add_cascade(label="帮助(H)", menu=menuHelp)# 添加菜单项menuFile.add_command(label="新建", accelerator="ctrl+n",command=self.test)menuFile.add_command(label="打开", accelerator="ctrl+o",command=self.test)menuFile.add_command(label="保存",accelerator="ctrl+s",command=self.test)menuFile.add_separator() # 添加分割线menuFile.add_command(label="退出",accelerator="ctrl+q",command=self.test)# 将主菜单栏加到根窗口root["menu"] = menubar#文本编辑区self.textpad = Text(root, width=50, height=30)self.textpad.pack()def test(self):pass
if __name__ == '__main__':root = Tk()root.geometry("450x300+200+300")root.title("个人简易记事本")app = Application(master=root)root.mainloop()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/631010.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CUDA编程---线程束洗牌指令

从Kepler系列的GPU(计算能力为3.0或更高)开始,洗牌指令(shuffle instruction)作为一种机制被加入其中,只要两个线程在相同的线程束中,那么就允许这两个线程直接读取另一个线程的寄存器。 洗牌指…

太阳能路灯光伏板的朝向设计问题

题目:太阳能路灯光伏板的朝向设计问题 难度对标几乎每一年的国赛A题。 QQ群:592697532 公众号:川川菜鸟 文章目录 背景问题问题一问题二问题三 题目解读相关公式(必备)太阳辐射的计算光伏板接收的辐射光学效率大 气透…

Linux 系统下的进程间通信 IPC 入门 「中」

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/39XQUQtGC3Ow-0s0JKWnog 信号量 信号量一般用于配合共享内存的数据传输,共享内存被多个进程之间共享访问,各个进程对共享…

大型网站系统架构演化实例_3.使用服务集群改善网站并发处理能力

1.使用服务集群改善网站并发处理能力 使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去更换更强大的服务器,对大型网站而言,不管多么强大的服务器,对大型网站而言&…

【Linux】—管理、设置防火墙规则(firewalld详解)

【Linux】—管理、设置防火墙规则(firewalld详解) 一、firewalld1.1 服务的启动、停止1.2 查看和设置默认区域1.3 使用firewalld进行规则配置1.4 重新加载防火墙配置1.5 查询已开放的端口、已允许的服务 💖The Begin💖点点关注&am…

【k8s】:kubectl 命令设置简写启用自动补全功能

【k8s】:kubectl 命令设置简写&启用自动补全功能 1、设置kubectl命令简写2、启用kubectl自动补全功能 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes(K8s)是一个强大的容器编排平台&#…

【WP】猿人学4 雪碧图、样式干扰

https://match.yuanrenxue.cn/match/4 探索 首先打开Fiddler,发现每个包的除了page参数一样,然后重放攻击可以实现,尝试py复现 Python可以正常拿到数据,这题不考请求,这题的难点原来在于数据的加密,这些数字…

数据库设计的三范式

简单来说就是:原子性、唯一性、独立性 后一范式都是在前一范式已经满足的情况进行附加的内容 第一范式(1NF):原子性 存储的数据应不可再分。 不满足原子性: 满足原子性: 第二范式(2NF&#xf…

Hadoop大数据处理技术-Linux相关命令

​7.Linux常用命令 1)Windows中的dir:列出当前目录下所有的文件和目录 2)cd:改变当前目录 cd命令并不能直接实现这种跳跃转换目录的功能 它只能让你在当前目录和其子目录之间来回切换 就像在一张平面地图上移动一样 如果想跨目录…

Biome 1.7 发布,支持从 ESLint 和 Prettier 迁移

近日,Biome v1.7 正式发布!这个新版本提供了从 ESLint 和 Prettier 迁移的简单路径。它还引入了格式化程序和 linter 的实验性机器可读报告、新的 linter 规则和许多修复。 使用以下命令更新 Biome: npm install --save-dev --save-exact b…

【计算机毕业设计】学习平台功能介绍——后附源码

🎉**欢迎来到我的技术世界!**🎉 📘 博主小档案: 一名来自世界500强的资深程序媛,毕业于国内知名985高校。 🔧 技术专长: 在深度学习任务中展现出卓越的能力,包括但不限于…

穿越物联网的迷雾:深入理解MQTT协议

目录标题 1、MQTT简介核心特性 2、MQTT的工作原理通信过程 3、MQTT的消息质量(QoS)4、安全机制5、实践应用环境准备示例项目发布者客户端订阅者客户端 6、最佳实践7、结论8、参考资料 在物联网(IoT)的海洋中,数据像水流…