本项目是基于 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. Azure 入门系列 (第一篇 Virtual Machine 和 SQL Server)

    前言 终于有机会自己搞 Azure 了. 以前都是找代理做,近期代理 support 越来越弱了. 看来是 right time 自己搞了. 以前写过一些关于 Azure 的笔记: Azure key ...

  2. ASP.NET Core – Middleware

    前言 MIddleware 就是中间件, ASP.NET Core 是用来处理 http request 的. 当 request 抵到 server 就进入了 Middleware pipe. 每个 ...

  3. 信创环境经典版SuerMap iManager ARM版部署流程

    一.环境 操作系统:银河麒麟kylin V10 CPU:鲲鹏920 SuperMap iManager 10.2.1 硬件:4H32G机器 磁盘分区格式建议如下(请严格按照如下,减少后期有用/目录资源 ...

  4. SXYZ-6.28训练赛

    今天上午出中考成绩,所以下午打了一场训练赛,只有两个小时,没有昨天毒瘤,但也很毒瘤(还是模拟赛好) 关于中考可以看我的中考游记 (为了保护隐私,以后都把姓名涂掉) 为什么还是倒数啊~ T1 binar ...

  5. 为什么用 AWS CLI?因为我懒得点鼠标!

    在这篇博客中,我们一起深入探索 AWS CLI 的世界,从零开始,逐步构建在云端的家园.将介绍 AWS CLI 的基本功能和使用场景,如何创建 IAM 用户.VPC.子网.安全组.EC2 实例等,甚至 ...

  6. 《Vue.js 设计与实现》读书笔记 - 第10章、双端 Diff 算法

    第10章.双端 Diff 算法 10.1 双端比较的原理 上一章的移动算法并不是最优的,比如我们把 ABC 移动为 CAB,如下 A C B --> A C B 按照上一章的算法,我们遍历新的数 ...

  7. gadget驱动框架(一)

    之前在linux移植udc驱动的时候,没有深入的理解整个gadget驱动框架,现在重新再屡屡gadget驱动,以便后期再次学习.本系列的文章以虚拟串口进行分析,相关源码均是基于linux4.19.12 ...

  8. 装有docker的虚拟机环境ping宿主机失败

    当我用docker network create 创建了一个网络后 [root@localhost ~]# docker network create kong-net 5c035564f9b4649 ...

  9. kubernetes拉取私有镜像仓库的镜像

    kubernetes拉取私有镜像仓库时需要使用镜像仓库的账号密码 方式: apiVersion: v1 kind: Pod metadata: name: private-reg spec: cont ...

  10. 一、java的简单介绍

    Java语言 Java是一门面向对象的程序设计语言,在语法上Java与C和C++类似,但丢弃了其相对难理解的一些特性,如操作符重载.多继承.自动的强制类型转换,同时Java语言不使用指针,而是引用,并 ...