{"id":23787663,"url":"https://github.com/lirentech/visual-file-qt","last_synced_at":"2025-04-11T15:27:31.904Z","repository":{"id":250146797,"uuid":"833607349","full_name":"LiRenTech/visual-file-qt","owner":"LiRenTech","description":"大型文件夹二维直观可视化，开发辅助工具，便于点击文件立刻触发在IDE中打开，解决IDE项目文件过多上下翻阅麻烦的问题。","archived":false,"fork":false,"pushed_at":"2024-08-20T13:35:07.000Z","size":769,"stargazers_count":124,"open_issues_count":9,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T11:38:31.315Z","etag":null,"topics":["py-qt5"],"latest_commit_sha":null,"homepage":"https://liren.zty012.de/visual-file/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LiRenTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-25T11:43:37.000Z","updated_at":"2025-03-21T17:53:46.000Z","dependencies_parsed_at":"2024-08-16T10:49:13.280Z","dependency_job_id":null,"html_url":"https://github.com/LiRenTech/visual-file-qt","commit_stats":null,"previous_names":["lirentech/visual-file-qt"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiRenTech%2Fvisual-file-qt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiRenTech%2Fvisual-file-qt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiRenTech%2Fvisual-file-qt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiRenTech%2Fvisual-file-qt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiRenTech","download_url":"https://codeload.github.com/LiRenTech/visual-file-qt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248430188,"owners_count":21101964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["py-qt5"],"created_at":"2025-01-01T15:15:28.059Z","updated_at":"2025-04-11T15:27:31.873Z","avatar_url":"https://github.com/LiRenTech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 项目代码直观查看工具 visual-file\n\n## 效果图\n\n默认生成效果\n\n![默认生成效果](docs/show.png)\n\n自定义摆放后\n\n![cannonwar-project](docs/cannonwar-project.jpg)\n\n放大细节\n\n![details](docs/details.jpg)\n\n## 特点\n\n1. 直观的展示项目文件结构，支持多层级目录结构\n\n2. 双击矩形打开文件\n\n3. 无限放大缩小、无边界移动、自由拖拽摆放布局并保存\n\n## 解决痛点\n\n项目太大，文件太多，普通的编辑器左侧列表太长，翻阅文件困难，需要一个工具来快速找到并打开文件。\n\n我们是三维空间中的碳基生命，我们的视网膜是二维的，所以二维信息包含了上下左右等相对位置信息。比IDE里的一维缩进列表更加丰富。我们可以利用好二维空间、更有逻辑地来摆放文件，比如摆的越靠上可以代表越接近逻辑顶层，越靠下可以代表越接近工具底层、越靠左代表越接近数据层、越靠右代表越接近UI交互层……，（您可以发挥任意想法）。\n\n或者以一定的图案摆放，这样一看到我们自己摆放的图案，想到找某个文件就能立刻根据空间记忆立刻找到，双击即可打开。不需要再在一维的列表中来回上下翻找。\n\n![形状自由摆放](docs/shape.jpg)\n\n如上所示，可以把这五个 ts 文件根据继承关系摆放成三角形，方便快速找到。\n\n类似 SpaceSniffer，屏幕上铺满了大大小小的嵌套的矩形框，每个矩形框代表一个文件夹或者文件，以二维的方式直观的打开项目工程文件，所有代码文件一览无余的，以二维的方式直观的展现在面前。\n\n双击某个矩形框打开代码文件的原理：\n\npython 调用系统默认程序打开文件。直接导致编辑器里实现了打开某个代码的功能。\n需要提前将 ts 文件的默认打开方式设置成对应的编辑器程序，比如 vscode。\n\n```\nos.startfile(full_path_file)\n```\n\n## 使用提示\n\nwindows系统不知道为什么，可能会报警病毒，但源代码全部开源，无恶意代码，请放心使用。\n\n实际上在我打包的时候就直接报警有病毒强制给删了。所以不得不手动设置信任才能成功打包。\n\n默认的全局排除里会排除.git 等文件目录，可以根据自己的需要进行修改。\n\n## TODO:\n\n为不同的后缀名文件渲染不同的图标。\n\n当缩小到一定程度的时候，文件夹里面的内容不显示，只显示一个大的文件夹名称\n\n全局排除的正则排除功能\n\n\n\n## 开发相关：\n\n此项目为LiRen团队开源项目，贡献代码前建议阅读开发规范文档中的python内容：https://liren.zty012.de/\n\n更新 assets 资源文件指令\n\n```commandline\npyrcc5 -o assets/image.rcc -o assets/assets.py\n```\n\n打包指令\n\n```commandline\nwindows:\npyinstaller --onefile --windowed --icon=./assets/favicon.ico main.py -n visual-file\nmacOS:\npyinstaller --onefile --windowed --icon=./assets/visual-file.icns main.py -n visual-file\n```\n\n## 布局文件格式\n\n```js\n{\n\t\"layout\": [\n        {\n            \"kind\": \"directory\" | \"file\",\n            \"name\": \"abc\",  // 文件夹名字或者文件名，不需要全路径，只需要一个名字即可\n            \"bodyShape\": {\n                \"width\": 500,\n                \"height\": 100,\n                \"locationLeftTop\": [155, 4154]\n            },\n            \"children\": [\n                // ...继续嵌套\n            ]\n        }\n    ]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flirentech%2Fvisual-file-qt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flirentech%2Fvisual-file-qt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flirentech%2Fvisual-file-qt/lists"}