Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

foreverseer/obj2file

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1 Commit

Repository files navigation

万物皆对象

(1)摘要

"很多事物都是对象形式,具有其属性 比如人,具有姓名,性别,年龄,头像 而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打开

(2)复杂对象的储存方式:

以文件的形式储存
如张三的信息,储存为"张三.person"
其中person为自定义后缀名,内部储存格式实际为zip
解压后可得到json文件"info.json"和数据目录"data"
其中info.json文件储存字段数据,如"姓名,性别,年龄"
而data内部储存复杂对象,如图片,文件(如pdf,word),目录等

(3)复杂对象的查看方式

类似图像查看器,可以左右自由翻页
但是在图像旁边可以显示一些额外信息,如"姓名,性别,年龄"
各个内容的位置,大小可以自由定义。
如在object_model中定义了.person文件的储存和查看方式,通过撰写person.json的方式
则每次打开person后,就可以以该方式实现查看

(4)最终效果

一个文件夹中的目录如下
————————
a.person
b.person
c.person
....
————————
双击打开a.person
则像图像查看器一样,打开该文件
在预定义的位置以组件的形式,显示头像,姓名,年龄,性别等
按左右键可切换上下文件
对某个组件左键,可选中该组件(滑动改变组件位置,或放大缩小,删除等)
对某个组件双击,可打开该组件(如双击头像,则在图像查看器中打开),对文字双击则可修改
对某个组件右键,则可打开对组件的设置

(5)总结

该软件是对图像查看器,文件查看器的一种补充和增强
让数据以文件的形式呈现,打开,修改,比excel等软件更符合人类的认识

(6)技术栈

  • 编程语言:python
  • 界面设计:pyside2
  • 文件压缩和打包:
  • 打包exe:pyinstaller

(7)项目计划

本项目的支持的结构化数据可分为文件,字段,目录三类,后续可继续添加

字段

  • [√] 字符串(str):可匹配任意可格式化为字符串的内容
  • [√] 格式化字符串(format_str):格式化字符串可调用其他变量
  • ×ばつ] 替换图标:可将特定字符串替换为图标,如"男"替换为'男.icon'以图片形式展示字符串

对文件的支持

  • [√] 图像(image):image(可匹配任意图像格式),png,bmp,jpg
  • [√] 可变列表图像(list_image):同上,可显示可变数量的图像
  • [√] 视频(video):video(可匹配任意视频格式),mp4,avi等

其他

  • ×ばつ] 目录(folder):对目录的处理
  • ×ばつ] 可视化界面编辑器:通过可视化编辑器,免受代码困扰
  • ×ばつ] 文件互转解压机制:将文件夹与对象文件互转

(削除) (8)特别久远的未来规划 (削除ここまで)

  1. 可接入excel,数据库等软件,实现数据一键互转
  2. 添加网络储存方式,如:在person文件中不储存头像图像以节省空间,而留下链接,每次打开.person文件时,自动从链接下载图像并显示
  3. 添加对任意文件的支持,可用"万物皆对象"软件打开pdf,word等文件,打开后可显示自定义信息,如文件作者,主要内容截图等
  4. 添加可编程接口,可以运行自定义程序,如判作业时,关闭"a.homework"文件,则自动将"a.homework"中"已阅"字段设为"是"

About

stract data/folder viewer

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /