本项目是基于 wxPython 开发的 GUI 应用,主要用于管理基础框架内容,包括用户、角色、机构、权限、日志、菜单、字典、附件、通用编码规则、配置管理等基础框架内容。
愿景是构建一个基于Python后端Web API或者本地多种数据库操作的通用应用系统,为各类企业提供一站式的管理系统解决方案。
我们可以通过利用其各种界面控件,结合Python跨平台运行的特性,为Windows、MacOS、Ubuntu等Linux系统,开发一套界面效果一致的应用系统。
我们可以基于VSCode+wxpython组合实现桌面端的开发。
VSCode 是一个高效、快速的代码编辑器,启动速度快,不会占用过多资源,VSCode 支持 Windows、Linux 和 macOS,且在各平台上有一致的用户体验。
wxPython 是一个跨平台的 GUI 库,基于原生平台的控件实现,因此应用程序的界面与操作系统的原生应用界面高度一致,提升用户体验。wxPython 支持 Windows、Linux 和 macOS,可以编写一次代码,并在多个操作系统上运行。wxPython 提供了大量的控件,如按钮、文本框、列表框、树形控件、菜单、工具栏等,可以满足桌面应用大部分需求。

1、系统功能介绍

1)系统登录界面

2)系统功能界面

工具栏和多文档界面是现代桌面应用程序中常见的界面元素,它们为用户提供了直观的操作和高效的工作流。工具栏通过将常用功能放置在一个可见的位置,让用户可以迅速访问和操作,无需通过多层菜单或子界面进行选择。工具栏的按钮通常使用图标(而非文字),这种视觉方式能减少用户的认知负担,让操作更加直观和高效。

多文档界面(MDI)是一种设计模式,允许用户在同一个应用程序窗口中同时打开多个文档或视图,方便用户在不同任务之间进行快速切换。与每个文档单独打开一个新窗口的方式不同,MDI 通过将多个文档嵌套在同一个父窗口中,帮助用户更高效地管理多个任务。

用户新增、编辑界面如下所示。包括选择树形列表,字典项目的显示和选择,常规数据的录入,关联关系的处理等等

用户快速选择的左侧栏里面,包括组织机构列表和角色列表,我们可以从中选择相应的分类,两个列表可以拖动开来进行显示,如下界面所示。

同时用户可以根据条件进行查询选择,条件区设计可以折叠处理。

树列表或者表格数据控件支持右键弹出菜单处理。

组织机构是一个树形结构列表。

组织机构作为树形结构列表,是一种常见的数据表示方式,用于描述一个组织的层级关系、部门结构或人员关系。在这种结构中,每个节点代表一个组织单元(如部门、职位、团队或个人),而节点之间的父子关系表示组织层级或上下级关系。树形结构使得组织的层次性和关联性更加清晰,并且便于管理和导航。

角色管理,系统为基于角色的用户分配权限,也成为RBAC,RBAC(基于角色的访问控制)是一种通过为用户分配角色来管理他们访问权限的安全模型。

RBAC (Role-Based Access Control) 是一种常见的权限管理模型,广泛用于组织和应用程序中来管理用户的访问权限。RBAC 基于用户的角色来决定其对系统资源的访问权限,而不是直接为每个用户单独配置权限。这种方式简化了权限管理,尤其是在用户数量较多时,更加高效和易于维护。

RBAC 的基本思想是:

  • 角色:角色代表一组用户的权限集合,通常与职位、工作职能或业务需求相关。例如,管理员、普通用户、审核员等。
  • 用户:用户是实际需要访问系统资源的人或实体。
  • 权限:权限是允许用户对某些资源执行特定操作的能力。权限通常与资源(如文件、数据库、系统功能等)和操作(如查看、修改、删除等)相关。

系统定义,是指我们为每个前端分配不同系统标识,用于管理权限点、菜单等资源信息。

功能管理,根据不同的终端系统,定义了对特定资源的操作(如编辑、删除、导入、导出、打印等等)。

菜单管理,用来动态构建工具栏或者菜单资源的管理,通过资源化,可以对角色拥有的菜单进行管理,从而实现动态化的菜单管理和呈现的需求。

系统会根据用户访问和修改数据的相关操作,记录登录日志和操作日志信息,供查询。

通用字典信息的管理,方便一些常见控件的数据使用,如下拉列表、复选框列表、单选框列表等等。为了更好管理字典数据,分为字典类型和字典数据的相关信息管理。

字典数据新增或者编辑界面如下所示。

业务编码规则是一个通用的编码规则设置,方便在系统相关业务表单中引用,生成指定格式的编码,并可以进行递增管理。

业务表编码规则的新增、编辑界面如下所示。

有些业务模块,可能需要二级菜单,我们可以为系统分配二级菜单,工具栏自动判断是否有二级菜单并展示在左侧面板上。

工具栏如果超出界面显示,会自动进行折叠,如右侧所示。

分享一个纯Python开发的系统程序,基于VSCode + WxPython开发的跨平台应用系统的更多相关文章

  1. 分享一个超级好用的php程序员工具箱

    分享一个超级好用的php程序员工具箱,是由php中文网开发的. 集合了php环境搭建.在线小工具.原生手册.文字与视频教程.问答社区等 (php程序员工具箱 v0.1版本,点此下载:http://ww ...

  2. 【前端酷站】分享一个纯 Javascript 的图表库与立体像素风制作~

    今天小编为大家推荐一个神奇的酷站.ECharts,一个纯 Javascript 的图表库. 以下是各个几个不错的界面的介绍: 首页:http://echarts.baidu.com/ 在首页有完整的说 ...

  3. webstorm开发微信小程序代码提醒(webstorm开发工具)

    使用了微信提供的开发工具是真心难用,卡顿厉害.中英文切写注释换相当不爽.还没办法多开窗口,相信大家也遇到过这种现象. 下边我们介绍下webstorm来开发微信小程序的一些配置: File---sett ...

  4. 分享一个纯css制作的动画化,在网页(手机)载入等的时候能够引用!

    CSS代码例如以下: /* Custom Stylesheet */ body, html { margin: 0; -webkit-font-smoothing: antialiased; back ...

  5. 【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问

    前言:目前翻译都是在线的,要在C#开发的程序上做一个可以实时翻译的功能,好像不是那么好做.而且大多数处于局域网内,所以访问在线的api也显得比较尴尬.于是,就有了以下这篇文章,自己搭建一套简单的离线翻 ...

  6. 用python实现新词发现程序——基于凝固度和自由度

    互联网时代,信息产生的数量和传递的速度非常快,语言文字也不断变化更新,新词层出不穷.一个好的新词发现程序对做NLP(自然预言处理)来说是非常重要的. N-Gram加词频 最原始的新词算法莫过于n-gr ...

  7. EOS Dapp开发(1)-基于Docker的开发环境搭建

    随着EOS主网的上线,相信基于EOS的Dapp开发会越来越多,查阅了很多资料相关的开发资料都不是很多,只能自己摸索,按照网上仅有的几篇教程,先git clonehttps://github.com/E ...

  8. 深入理解Python中协程的应用机制: 使用纯Python来实现一个操作系统吧!!

    本文参考:http://www.dabeaz.com/coroutines/   作者:David Beazley 缘起: 本人最近在学习python的协程.偶然发现了David Beazley的co ...

  9. 基于深度学习的人脸性别识别系统(含UI界面,Python代码)

    摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检 ...

  10. 基于vs2015 SignalR开发的微信小程序使用websocket实现聊天功能

    一)前言 在微信小程上实现聊天功能,大致有三种方式:1)小程序云开发 2)购买第三方IM服务 3)使用自己的服务器自己开发. 这里重要讲使用自己的服务器自己开发,并且是基于vs的开发. 网上提供的解决 ...

随机推荐

  1. springboot 前端访问服务器上的图片及附件

    一.需求 后端是springboot,附件上传到服务器上,前端访问服务器上的附件,如:显示图片.视频.文件等 二.解决方法 springboot 中进行资源映射,根据路径将磁盘上的文件映射为资源返回到 ...

  2. CSS – 单侧环境 (stylelint, prettier, tailwind)

    前言 真实项目中, 通常搭配 Webpack 之类的工具使用: Webpack 学习笔记 这篇记入的是单元测试的环境 参考: Get started with Tailwind CSS Automat ...

  3. ConcurrentLinkedQueue详解(图文并茂)

    前言 ConcurrentLinkedQueue是基于链接节点的无界线程安全队列.此队列按照FIFO(先进先出)原则对元素进行排序.队列的头部是队列中存在时间最长的元素,而队列的尾部则是最近添加的元素 ...

  4. 手搓大模型Task03:手搓一个最小的 Agent 系统

    前言   训练一个大模型是一件高投入低回报的事情,况且训练的事情是由大的巨头公司来做的事情:通常我们是在已有的大模型基础之上做微调或Agent等:大模型的能力是毋庸置疑的,但大模型在一些实时的问题上, ...

  5. [rCore学习笔记 028] Rust 中的动态内存分配

    引言 想起我们之前在学习C的时候,总是提到malloc,总是提起,使用malloc现场申请的内存是属于堆,而直接定义的变量内存属于栈. 还记得当初学习STM32的时候CubeIDE要设置stack 和 ...

  6. 7-11 leetcode 2619

    请你编写一段代码实现一个数组方法,使任何数组都可以调用 array.last() 方法,这个方法将返回数组最后一个元素.如果数组中没有元素,则返回 -1 . ps:this 环境变量的使用 ,this ...

  7. apisix~为自定义插件设计一个configmap脚本

    configMap Kubernetes 中的 ConfigMap 是一种用来存储配置数据的 API 资源,它允许您将配置信息以键值对的形式保存,并在容器中使用这些配置信息.ConfigMap 提供了 ...

  8. kotlin协程——>select 表达式(实验性的)

    select 表达式(实验性的) select 表达式可以同时等待多个挂起函数,并 选择 第⼀个可⽤的. 在通道中 select 我们现在有两个字符串⽣产者:fizz 和 buzz .其中 fizz ...

  9. 《使用Gin框架构建分布式应用》阅读笔记:p1-p19

    <使用Gin框架构建分布式应用>学习第1天,p1-p19总结,总计19页. 一.技术总结 1.go get & go install 执行go get 或者 go install ...

  10. 五、Spring Boot集成Spring Security之认证流程2

    二.概要说明 上文已详细介绍了四.Spring Boot集成Spring Security之认证流程 本文则着重介绍用户名密码认证过滤器UsernamePasswordAuthenticationFi ...