Python绘图系统22:实现系统菜单

文章目录

    • 文件菜单
    • 子部件开关

Python绘图系统:

  • 前置源码: Python打造动态绘图系统
  • 📈一 三维绘图系统 📈二 多图绘制系统📈三 坐 标 轴 定 制
  • 📈四 定制绘图风格 📈五 数据生成导入📈六 三维动态演示
  • 坐标列表进阶:导出数据📌系统菜单

文件菜单

无论是和已经相对丰富的AxisFrame中的导入按钮相比,还是和刚刚实现的导出功能相比,AxisList的导入功能是十分羸弱的。如果以导出功能为模板,则导入功能也许考虑多种情况,有的时候可能只需要导入某一坐标维度的数据,有的时候却可能需要导入所有当前坐标的数据,后者又分为两种情况,一种是导入多个文件,一种是导入单个文件。

所以,实现导入功能,看来也需要用到Menubutton这个部件。

另一方面,文件导入和导出同属文件交互功能,所以比较适合放在同一个按钮菜单下。方法,自然是改造刚刚实现的导出按钮,最终效果如下

在这里插入图片描述
initFeature中相关代码改为

    btn = ttk.Menubutton(frm, text="文件",width=4)btn.pack(side=tk.LEFT)m = self.initMenu(btn)btn.config(menu=m)

initFileMenu代码如下

def initMenu(self, btn):top = tk.Menu(btn, tearoff=False)m = tk.Menu(top, tearoff=False)m.add_command(label="单轴导入", command = self.mImportOne)m.add_command(label="合并导入", command = self.mImportMerge)m.add_command(label="多文件导入", command = self.mImportAll)top.add_cascade(label="导入", menu=m)m = tk.Menu(top, tearoff=False)m.add_command(label="合并导出", command = self.mExportMerge)m.add_command(label="全部导出", command = self.mExportAll)m.add_command(label="单轴导出", command = self.mExportOne)top.add_cascade(label="导出", menu=m)return top

其中,add_command为菜单绑定功能选项,add_cascade用于添加子菜单。其中self.mImportOne, self.mImportMerge以及self.mImportAll属于尚未完成的功能,可先把函数写好备用。

子部件开关

受到文件菜单的启发,或许用于调控风格控件的按钮,也可以并入到菜单里,从而节省工具栏的空间。这样一来,菜单按钮叫文件已经不合适了,可以改名为功能。然后在initMenu函数末尾添加

    m = tk.Menu(top, tearoff=False)m.add_command(label="风格", command = self.btnShowStyle)self.showStyle = Falsetop.add_cascade(label="窗口", menu=m)

这个self.btnShowStyle是已经实现好的功能,最后效果如下

在这里插入图片描述
由于本文对代码的改动比较集中,所以就不贴放修改后的源代码了。本文代码的修改,建立在导出数据这篇博客之上。

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

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

相关文章

人工智能安全-2-非平衡数据处理(2)

5 算法层面 代价敏感:设置损失函数的权重,使得少数类判别错误的损失大于多数类判别错误的损失; 单类分类器方法:仅对少数类进行训练,例如运用SVM算法; 集成学习方法:即多个分类器,然…

【OpenSSL】单向散列函数

什么是单向散列函数 任意长度数据生成固定长度是散列快速计算消息变化散列变化单向不可逆,抗碰撞 应用场景 文件完整性口令加密消息认证伪随机数配合非对称加密做数字签名比特币工作量证明 单向hash抗碰撞 弱抗碰撞 给定X和hash值的情况下,找到另外…

怎么使用 Go 语言操作 Apache Doris

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此&#xf…

buuctf-[网鼎杯 2020 朱雀组]phpweb

1.打开网站,吓我一跳 2.查看源代码,主要看到timezone,然后这个页面是五秒就会刷新一次 一开始去搜了这个,但是没什么用 3.使用bp抓包 会发现有两个参数,应该是用func来执行p 4.修改func和p file_get_contents&#…

7.网络原理之TCP_IP(上)

文章目录 1.网络基础1.1认识IP地址1.2子网掩码1.3认识MAC地址1.4一跳一跳的网络数据传输1.5总结IP地址和MAC地址1.6网络设备及相关技术1.6.1集线器:转发所有端口1.6.2交换机:MAC地址转换表转发对应端口1.6.3主机:网络分层从上到下封装1.6.4主…

HTTP 与 HTTPS

文章目录 HTTP协议一、什么是HTTP协议二、HTTP 协议通信过程三、URL什么是URI 四、HTTP报文1、请求报文(1)请求报文结构 2、响应报文(1)响应报文结构 五、HTTP请求方式1、GET:获取资源2、POST:提交数据增加…

巨人互动|Facebook海外户Facebook内容的类型

随着人们日益依赖的社交媒体来进行信息获取与交流,Facebook作为全球最大的社交媒体平台之一,那么Facebook的内容都有哪些类型呢?下面小编来讲讲吧! 1、实时发生的事 我们需要实时了解时事动态,这样可以使用户对品牌发…

三个要点,掌握Spring Boot单元测试

单元测试是软件开发中不可或缺的重要环节,它用于验证软件中最小可测试单元的准确性。结合运用Spring Boot、JUnit、Mockito和分层架构,开发人员可以更便捷地编写可靠、可测试且高质量的单元测试代码,确保软件的正确性和质量。 一、介绍 本文…

AWS SAA知识点整理(作成中)

共通 一些信息已经更新了,但参考题的答案还是旧的。 比如: S3的最大读写性能已经提高到 3,500 PUT/COPY/POST/DELETE or 5,500 GET/HEAD requests per second 并且不再要求使用random prefix 题目中有时候会让选择Not violation 不合适的一项&#xff…

mybatisPlus代码生成器

一、添加和mybatisPlus相关的依赖 二、创建代码生成器类 package com.example.mybatisplus_generator.generator;import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;public class Co…

智算创新,美格智能助力智慧支付加速发展

9月21日,以“智算引领创新未来”为主题的紫光展锐2023泛物联网终端生态论坛在深圳举行。作为紫光展锐重要战略合作伙伴,美格智能标准模组产品线总经理郭强华、高级产品总监刘伟鹏受邀出席论坛。美格智能基于紫光展锐5G、4G、智能SoC、Cat.1 bis等芯片平台…

SpringCloud 简单的了解

什么是SpringCloud ? 基于 Spring Boot 的 Spring 集成应用程序,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,提供与外部系统的集成。 如服务注册与发现、配置中心、负载均衡、断路器、消息总线、数据监控等;换句话说&#xff…

Zilliz@阿里云:大模型时代下Milvus Cloud向量数据库处理非结构化数据的最佳实践

大模型时代下的数据存储与分析该如何处理?有没有已经落地的应用实践? 为探讨这些问题,近日,阿里云联合 Zilliz 和 Doris 举办了一场以《大模型时代下的数据存储与分析》为主题的技术沙龙,其中,阿里云对象存储 OSS 上拥有海量的非结构化数据,Milvus(Zilliz)作为全球最有…

飞致云开源社区月度动态报告(2023年9月)

自2023年6月起,中国领先的开源软件公司FIT2CLOUD飞致云以月度为单位发布《飞致云开源社区月度动态报告》,旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况,以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源大屏…

django_auth_ldap登录权限

用户登录权限分为三种,通过is_active,is_staff,is_superuser标识。可以对组赋予对应的权限。 设定active组、staff组和superuser组分别对应三种权限。在不同组权限下的登录情况如下: 当用户不属于任何一组: 登录失败,提示如图&a…

MonkeyRunner测试步骤

首先把安卓SDK的 环境变量给配置好,这里就不再多解释,自己google 然后将自己的安卓设备打开调试模式,USB连接至电脑,运行CMD,输入命令adb devices 查看你的安卓设备的ID(ID后面写程序会调用),…

容器启动报错

容器启动报错 docker: Error response from daemon: driver failed programming external connectivity on endpoint XXX 如下: 据百度: 在docker启动后在,再对防火墙firewalld进行操作,就会发生上述报错 详细原因&#xff1a…

在EXCEL中构建加载项之创建加载项的目的及规范要求

【分享成果,随喜正能量】一句南无阿弥陀佛,本是释迦牟尼佛所证的无上正等正觉法,洒在娑婆世界的众生海中,只为末世众生能够以信愿之心抓住此救命稻草,要知道今世人此生的处境,可能只剩这道要么极乐要么三涂…

【DTEmpower案例操作教程】向导式建模

DTEmpower是由天洑软件自主研发的一款通用的智能数据建模软件,致力于帮助工程师及工科专业学生,利用工业领域中的仿真、试验、测量等各类数据进行挖掘分析,建立高质量的数据模型,实现快速设计评估、实时仿真预测、系统参数预警、设…

Android 导入ncnn-android-yolov8-seg : 实现人体识别和人像分割

1. 前言 上篇文章我们在Android中使用OpenCV实现了人脸识别,这篇文章我们使用OpenCVYOLOv8NCNN 来实现人像分割的功能。 首先来看下效果,这里会识别出人体,并会用蓝色的框框出来,并会有标签标注识别出的物体是什么,概…