“很多事物都是对象形式,具有其属性 比如人,具有姓名,性别,年龄,头像 而excel或数据库工具可以轻松储存“姓名,性别,年龄”等信息,但是对头像却无能为力,其他复杂内容更无能为力 本项目拟开发一种软件,可以实现复杂对象的储存和查看”
快速上手
-
构建一个包特定数据结构的文件夹
- 如包括head.jpg
- 在该文件夹中新建info.json,并键入内容
{ "name":"梁启超", "age": 56, "sex": "男" }
- 上述代码构建了三个字段,代表显示的字段信息
-
将该文件夹以zip格式压缩,并修改名称为 梁启超.person
-
在object_model文件夹中新建模板文件person.json,并键入内容
{ "data": { "head": { "type": "image", "position": [0, 0, 3, 1] }, "name": { "type": "str", "position": [0, 0, 1, 0] }, "age": { "type": "int", "position": [0, 0, 2, 0] }, "sex": { "type": "str", "position": [0, 0, 3, 1] } } }
- 上述代码中,data负责配置info.json中数据的显示方式,head表示一个数据段,type内的内容是类型,即图像(image),将读取.person文件中所有名称为head的图像,position表示它在网格中的位置,如[0,0,3,1]表示从0行0列开始,占3行1列
-
在命令行键入如下代码,即可显示
python obj2file.py 梁启超.person
- 没装python的,就
obj2file.exe 梁启超.person
- 或者右键 梁启超.person,打开方式,设为使用obj2file.exe打开
- 没装python的,就
以文件的形式储存
如张三的信息,储存为“张三.person”
其中person为自定义后缀名,内部储存格式实际为zip
解压后可得到json文件“info.json”和数据目录“data”
其中info.json文件储存字段数据,如“姓名,性别,年龄”
而data内部储存复杂对象,如图片,文件(如pdf,word),目录等
类似图像查看器,可以左右自由翻页
但是在图像旁边可以显示一些额外信息,如“姓名,性别,年龄”
各个内容的位置,大小可以自由定义。
如在object_model中定义了.person文件的储存和查看方式,通过撰写person.json的方式
则每次打开person后,就可以以该方式实现查看
一个文件夹中的目录如下
————————
a.person
b.person
c.person
....
————————
双击打开a.person
则像图像查看器一样,打开该文件
在预定义的位置以组件的形式,显示头像,姓名,年龄,性别等
按左右键可切换上下文件
对某个组件左键,可选中该组件(滑动改变组件位置,或放大缩小,删除等)
对某个组件双击,可打开该组件(如双击头像,则在图像查看器中打开),对文字双击则可修改
对某个组件右键,则可打开对组件的设置
该软件是对图像查看器,文件查看器的一种补充和增强
让数据以文件的形式呈现,打开,修改,比excel等软件更符合人类的认识
- 编程语言:python
- 界面设计:pyside2
- 文件压缩和打包:
- 打包exe:pyinstaller
本项目的支持的结构化数据可分为文件,字段,目录三类,后续可继续添加
字段
- [√] 字符串(str):可匹配任意可格式化为字符串的内容
- [√] 格式化字符串(format_str):格式化字符串可调用其他变量
- [×] 替换图标:可将特定字符串替换为图标,如“男”替换为'男.icon'以图片形式展示字符串
对文件的支持
- [√] 图像(image):image(可匹配任意图像格式),png,bmp,jpg
- [√] 可变列表图像(list_image):同上,可显示可变数量的图像
- [√] 视频(video):video(可匹配任意视频格式),mp4,avi等
其他
- [×] 目录(folder):对目录的处理
- [×] 可视化界面编辑器:通过可视化编辑器,免受代码困扰
- [×] 文件互转解压机制:将文件夹与对象文件互转
- 可接入excel,数据库等软件,实现数据一键互转
- 添加网络储存方式,如:在person文件中不储存头像图像以节省空间,而留下链接,每次打开.person文件时,自动从链接下载图像并显示
- 添加对任意文件的支持,可用“万物皆对象”软件打开pdf,word等文件,打开后可显示自定义信息,如文件作者,主要内容截图等
- 添加可编程接口,可以运行自定义程序,如判作业时,关闭"a.homework"文件,则自动将“a.homework”中“已阅”字段设为“是”