jadeui 1.3.0__tar.gz → 2.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. {jadeui-1.3.0 → jadeui-2.3.2}/.gitignore +5 -0
  2. jadeui-2.3.2/PKG-INFO +250 -0
  3. jadeui-2.3.2/README.md +213 -0
  4. {jadeui-1.3.0 → jadeui-2.3.2}/examples/README.md +2 -0
  5. {jadeui-1.3.0 → jadeui-2.3.2}/examples/backdrop_demo/README.md +2 -8
  6. {jadeui-1.3.0 → jadeui-2.3.2}/examples/calculator/README.md +4 -9
  7. {jadeui-1.3.0 → jadeui-2.3.2}/examples/custom_template/README.md +2 -8
  8. {jadeui-1.3.0 → jadeui-2.3.2}/examples/router_demo/README.md +2 -8
  9. jadeui-2.3.2/examples/v23_demo/README.md +19 -0
  10. {jadeui-1.3.0 → jadeui-2.3.2}/examples/vue_app/README.md +2 -8
  11. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/__init__.py +26 -4
  12. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/app.py +212 -14
  13. jadeui-2.3.2/jadeui/cli/__init__.py +5 -0
  14. jadeui-2.3.2/jadeui/cli/__main__.py +5 -0
  15. jadeui-2.3.2/jadeui/cli/build.py +424 -0
  16. jadeui-2.3.2/jadeui/cli/doctor.py +139 -0
  17. jadeui-2.3.2/jadeui/cli/init.py +135 -0
  18. jadeui-2.3.2/jadeui/cli/japk.py +92 -0
  19. jadeui-2.3.2/jadeui/cli/main.py +398 -0
  20. jadeui-2.3.2/jadeui/cli/project.py +193 -0
  21. jadeui-2.3.2/jadeui/cli/run.py +32 -0
  22. jadeui-2.3.2/jadeui/clipboard.py +71 -0
  23. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/core/dll.py +211 -30
  24. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/core/types.py +159 -100
  25. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/dialog.py +118 -122
  26. jadeui-2.3.2/jadeui/downloader.py +622 -0
  27. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/events.py +28 -4
  28. jadeui-2.3.2/jadeui/hotkey.py +199 -0
  29. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/ipc.py +71 -4
  30. jadeui-2.3.2/jadeui/japk.py +173 -0
  31. jadeui-2.3.2/jadeui/menu.py +340 -0
  32. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/notification.py +14 -4
  33. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/router.py +9 -8
  34. jadeui-2.3.2/jadeui/scaffolds/__init__.py +1 -0
  35. jadeui-2.3.2/jadeui/scaffolds/html/.gitignore +9 -0
  36. jadeui-2.3.2/jadeui/scaffolds/html/README.md +28 -0
  37. jadeui-2.3.2/jadeui/scaffolds/html/app.py +16 -0
  38. jadeui-2.3.2/jadeui/scaffolds/html/pyproject.toml +12 -0
  39. jadeui-2.3.2/jadeui/scaffolds/html/web/index.html +82 -0
  40. jadeui-2.3.2/jadeui/scaffolds/react/.gitignore +12 -0
  41. jadeui-2.3.2/jadeui/scaffolds/react/README.md +25 -0
  42. jadeui-2.3.2/jadeui/scaffolds/react/app.py +23 -0
  43. jadeui-2.3.2/jadeui/scaffolds/react/frontend/index.html +12 -0
  44. jadeui-2.3.2/jadeui/scaffolds/react/frontend/package.json +19 -0
  45. jadeui-2.3.2/jadeui/scaffolds/react/frontend/src/App.jsx +36 -0
  46. jadeui-2.3.2/jadeui/scaffolds/react/frontend/src/main.jsx +9 -0
  47. jadeui-2.3.2/jadeui/scaffolds/react/frontend/vite.config.js +12 -0
  48. jadeui-2.3.2/jadeui/scaffolds/react/pyproject.toml +12 -0
  49. jadeui-2.3.2/jadeui/scaffolds/vue/.gitignore +12 -0
  50. jadeui-2.3.2/jadeui/scaffolds/vue/README.md +27 -0
  51. jadeui-2.3.2/jadeui/scaffolds/vue/app.py +23 -0
  52. jadeui-2.3.2/jadeui/scaffolds/vue/frontend/index.html +12 -0
  53. jadeui-2.3.2/jadeui/scaffolds/vue/frontend/package.json +18 -0
  54. jadeui-2.3.2/jadeui/scaffolds/vue/frontend/src/App.vue +47 -0
  55. jadeui-2.3.2/jadeui/scaffolds/vue/frontend/src/main.js +4 -0
  56. jadeui-2.3.2/jadeui/scaffolds/vue/frontend/vite.config.js +12 -0
  57. jadeui-2.3.2/jadeui/scaffolds/vue/pyproject.toml +12 -0
  58. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/server.py +76 -34
  59. jadeui-2.3.2/jadeui/storage.py +197 -0
  60. jadeui-2.3.2/jadeui/system.py +442 -0
  61. jadeui-2.3.2/jadeui/tray.py +249 -0
  62. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/window.py +536 -84
  63. {jadeui-1.3.0 → jadeui-2.3.2}/pyproject.toml +21 -5
  64. jadeui-1.3.0/PKG-INFO +0 -158
  65. jadeui-1.3.0/README.md +0 -123
  66. jadeui-1.3.0/jadeui/downloader.py +0 -405
  67. {jadeui-1.3.0 → jadeui-2.3.2}/examples/dialog_notification_demo/README.md +0 -0
  68. {jadeui-1.3.0 → jadeui-2.3.2}/examples/simple/README.md +0 -0
  69. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/core/__init__.py +0 -0
  70. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/core/lifecycle.py +0 -0
  71. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/exceptions.py +0 -0
  72. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/templates/__init__.py +0 -0
  73. {jadeui-1.3.0 → jadeui-2.3.2}/jadeui/utils.py +0 -0
@@ -25,6 +25,7 @@ venv/
25
25
  ENV/
26
26
  env/
27
27
  .venv/
28
+ .venv-*/
28
29
 
29
30
  # IDE
30
31
  .idea/
@@ -46,6 +47,7 @@ htmlcov/
46
47
  # Build
47
48
  *.manifest
48
49
  *.spec
50
+ .tmp_jadeview_*/
49
51
 
50
52
  # DLL (development only, included in wheel)
51
53
  jadeui/dll/
@@ -66,3 +68,6 @@ Thumbs.db
66
68
  # uv
67
69
  .uv/
68
70
 
71
+
72
+ # vue_app build output (generated by `npm run build`)
73
+ examples/vue_app/web/
jadeui-2.3.2/PKG-INFO ADDED
@@ -0,0 +1,250 @@
1
+ Metadata-Version: 2.4
2
+ Name: jadeui
3
+ Version: 2.3.2
4
+ Summary: Python SDK for JadeView - Create desktop applications with WebView
5
+ Project-URL: Homepage, https://jade.run
6
+ Project-URL: Documentation, https://jade.run/python-sdk
7
+ Project-URL: Repository, https://github.com/ArcletProject/jadeui
8
+ Project-URL: Issues, https://github.com/ArcletProject/jadeui/issues
9
+ Author: JadeView Team
10
+ License: MIT
11
+ Keywords: desktop,gui,jadeui,jadeview,ui,webview
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.7
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
25
+ Classifier: Topic :: Desktop Environment
26
+ Classifier: Topic :: Software Development :: User Interfaces
27
+ Requires-Python: >=3.7
28
+ Provides-Extra: dev
29
+ Requires-Dist: build>=1.0; extra == 'dev'
30
+ Requires-Dist: imageio; extra == 'dev'
31
+ Requires-Dist: mypy>=1.0; extra == 'dev'
32
+ Requires-Dist: pytest>=7.0; extra == 'dev'
33
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
34
+ Provides-Extra: pyinstaller
35
+ Requires-Dist: pyinstaller>=6.0; extra == 'pyinstaller'
36
+ Description-Content-Type: text/markdown
37
+
38
+ <p align="center">
39
+ <img src="assets/light.svg" alt="JadeUI Logo" width="120">
40
+ </p>
41
+
42
+ <h1 align="center">JadeUI</h1>
43
+
44
+ <p align="center">
45
+ <strong>Python SDK for JadeView - 使用 Web 技术构建桌面应用</strong>
46
+ </p>
47
+
48
+ <p align="center">
49
+ <a href="https://pypi.org/project/jadeui/"><img src="https://img.shields.io/pypi/v/jadeui.svg" alt="PyPI version"></a>
50
+ <a href="https://pypi.org/project/jadeui/"><img src="https://img.shields.io/pypi/pyversions/jadeui.svg" alt="Python versions"></a>
51
+ </p>
52
+
53
+ ---
54
+
55
+ JadeUI 是 [JadeView](https://jade.run) 的 Python SDK,让你可以使用 Python + Web 技术构建现代桌面应用程序。
56
+
57
+ ## 特性
58
+
59
+ - **WebView 窗口** - 使用 HTML/CSS/JS 构建 UI
60
+ - **现代外观** - 支持 Windows 11 Mica/Acrylic 效果
61
+ - **主题切换** - Light/Dark/System 主题
62
+ - **IPC 通信** - Python 与前端双向通信
63
+ - **对话框 API** - 文件选择、消息框 (v1.3.0+)
64
+ - **通知 API** - Windows 原生桌面通知 (v1.3.0+)
65
+ - **系统托盘** - 托盘图标、提示与右键菜单 (v2.2.4+)
66
+ - **全局热键** - 应用在后台也能响应的快捷键 (v2.2.4+)
67
+ - **剪贴板 / 系统信息** - 剪贴板读写、显示器/语言/系统路径 (v2.2.4+)
68
+ - **窗口增强** - 缩放、任务栏进度/闪烁、DevTools、内容保护等 (v2.2.4+)
69
+ - **YAML 存储 / 系统集成** - 持久化存储、开机自启、文件图标、NTP 网络时间 (v2.3.0+)
70
+ - **窗口集成增强** - 不进任务栏、不抢焦点、窗口层级、HWND 反查窗口 ID (v2.3.0+)
71
+ - **打包体积** - 极小的依赖,打包后体积仅有8MB左右
72
+
73
+ > 本版本对应 JadeView 原生 **v2.3.0 (Build 26G02)**。从 2.2.4 升级的变更与实机验收结果详见 [docs/UPGRADE_v2.3.0.md](docs/UPGRADE_v2.3.0.md)。
74
+
75
+ ## 安装
76
+
77
+ ```bash
78
+ pip install jadeui
79
+ ```
80
+
81
+ ## CLI 快速开始
82
+
83
+ 安装后可使用统一命令行工具 `jadeui`:
84
+
85
+ ```bash
86
+ jadeui init my-app --frontend html # 也可选 vue / react
87
+ cd my-app
88
+ jadeui doctor # 检查 Python / DLL / Nuitka / Node+asar
89
+ jadeui run # 开发运行
90
+ jadeui japk # 前端打包为明文 app.japk(需 @electron/asar)
91
+ jadeui build # 宿主打包为 exe(默认 Nuitka)
92
+ jadeui build --packager pyinstaller # 可选 PyInstaller
93
+ ```
94
+
95
+ 常用子命令:`init` / `run` / `doctor` / `japk` / `build` / `download` / `clean`。
96
+
97
+ 旧入口 `jadeui-download`、`jadeui-clean` 仍然可用。
98
+
99
+ 项目元数据(可选)读 `pyproject.toml`:CLI 显式参数优先,其次 `[tool.jadeui]`,再回退 `[project].name`(例如 `jadeui build` 的默认输出名)。与 uv / conda 等共用同一份 `pyproject.toml` 时互不冲突——JadeUI 只使用 `[tool.jadeui]` 命名空间。
100
+
101
+ ## JadeView DLL 更新规则
102
+
103
+ JadeUI SDK 只会在已适配的 JadeView API 版本内自动选择最新构建号。例如 `2.3.0.26G02` 可以自动更新到同一 tag 下的后续 build,但不会自动跨到 `2.4` 或其它 release tag。
104
+
105
+ ```bash
106
+ jadeui download # 下载当前 SDK 适配版本的最新 build
107
+ jadeui download --build 26G02 # 固定下载指定 build
108
+ # 兼容旧命令:
109
+ jadeui-download
110
+ ```
111
+
112
+ 当前按 Python 解释器架构选择上游原生包:
113
+
114
+ - Windows: `x86` / `x64` / `arm64`,下载 `JadeView_win_{arch}_*.zip`,加载 `JadeView_{arch}.dll`
115
+
116
+ 跨 minor/major 的原生版本升级(如 `2.2` -> `2.3`)可能包含 ABI/API 变化,必须由 SDK 显式适配后再升级。
117
+
118
+ ## 快速开始
119
+
120
+ ### CLI 脚手架
121
+
122
+ ```bash
123
+ jadeui init my-app --frontend html
124
+ cd my-app
125
+ jadeui run
126
+ ```
127
+
128
+ ### 最简模式
129
+
130
+ ```python
131
+ from jadeui import Window
132
+
133
+ Window(title="Hello JadeUI", url="https://example.com").run()
134
+ ```
135
+
136
+ ### 本地应用(自动检测 web 目录)
137
+
138
+ ```python
139
+ from jadeui import Window
140
+
141
+ Window(title="My App").run() # 自动加载 web/index.html
142
+ ```
143
+
144
+ ### 完整模式(多窗口、全局事件)
145
+
146
+ ```python
147
+ from jadeui import JadeUIApp, Window
148
+
149
+ app = JadeUIApp()
150
+
151
+ @app.on_ready
152
+ def on_ready():
153
+ Window(title="Window 1", url="https://example.com").show()
154
+ Window(title="Window 2", url="https://google.com").show()
155
+
156
+ app.run()
157
+ ```
158
+
159
+ ## 示例项目
160
+
161
+ 查看 [examples](./examples) 目录获取完整示例:
162
+
163
+ | 示例 | 说明 |
164
+ |------|------|
165
+ | [simple](./examples/simple) | **最简示例** - 几行代码创建应用 |
166
+ | [calculator](./examples/calculator) | 基础计算器,展示窗口创建和 IPC 通信 |
167
+ | [backdrop_demo](./examples/backdrop_demo) | Windows 11 Mica/Acrylic 背景效果 |
168
+ | [router_demo](./examples/router_demo) | 内置路由系统实现多页面应用 |
169
+ | [custom_template](./examples/custom_template) | 自定义 HTML 模板和样式 |
170
+ | [vue_app](./examples/vue_app) | Vue.js + JadeUI 集成示例 |
171
+ | [dialog_notification_demo](./examples/dialog_notification_demo) | 对话框与桌面通知 (v1.3.0+) |
172
+ | [p3_demo](./examples/p3_demo) | **系统托盘 / 全局热键 / 剪贴板 / 系统信息 / 窗口增强** (v2.2.4+) |
173
+ | [v23_demo](./examples/v23_demo) | **YAML 存储 / 窗口层级 / 文件图标 / NTP / 拖拽事件** (v2.3.0+) |
174
+
175
+ ### 效果预览
176
+
177
+ | Simple | Calculator | Backdrop |
178
+ |:---:|:---:|:---:|
179
+ | ![Simple](assets/simple.png) | ![Calculator](assets/calculator_iiBxCxUko6.png) | ![Backdrop](assets/backdrop_demo.png) |
180
+
181
+ | Router | Custom Template | Vue App |
182
+ |:---:|:---:|:---:|
183
+ | ![Router](assets/router_demo.png) | ![Custom](assets/custom_demo.png) | ![Vue](assets/vueapp.png) |
184
+
185
+ ## API 文档
186
+
187
+ 完整文档请访问: https://jade.run/python-sdk
188
+
189
+ ## 前端资源包(JAPK)
190
+
191
+ JAPK 打包的是 **HTML/CSS/JS 等前端资源**(不是 Python exe)。官方说明见 [JAPK 文档](https://jade.run/docs/api/japk)。
192
+
193
+ | 方式 | 工具 | 说明 |
194
+ |------|------|------|
195
+ | 明文 ASAR 兼容包 | `jadeui japk`(底层 `@electron/asar`) | 开发/内部工具,命令行可用 |
196
+ | 混淆 / 签名包 | [JadePack](https://jade.run/jadepack) 桌面客户端 | **生产推荐**(签名包为 AES-256-GCM + Ed25519) |
197
+
198
+ ```bash
199
+ # 需先安装 Node.js,并执行: npm install -g @electron/asar
200
+ jadeui japk # 默认 web -> dist/app.japk
201
+ jadeui japk --src web -o dist/app.japk
202
+ ```
203
+
204
+ 运行时可用目录、`.japk` 路径或内存加载:
205
+
206
+ ```python
207
+ from jadeui import Window
208
+
209
+ Window(title="My App").run(japk="dist/app.japk")
210
+ ```
211
+
212
+ ## 打包发布(宿主 exe)
213
+
214
+ 默认使用 **Nuitka** 将 Python 宿主打包为独立可执行文件;也可用 PyInstaller:
215
+
216
+ ```bash
217
+ # Nuitka(推荐;onefile 建议使用 4.0rc7)
218
+ # pip install https://github.com/HG-ha/jadeui/raw/main/scripts/nuitka-4.0.rc7.zip
219
+ jadeui build app.py -o your_app
220
+
221
+ # 可选 PyInstaller
222
+ pip install jadeui[pyinstaller]
223
+ jadeui build app.py -o your_app --packager pyinstaller
224
+ ```
225
+
226
+ 兼容旧脚本:`python scripts/build.py your_app.py -o your_app`(内部转发到同一实现)。
227
+
228
+ ## 系统要求
229
+
230
+ - **操作系统**: Windows 10/11
231
+ - **Python**: 3.7+
232
+ - **Python 架构**: Windows 支持 x86 / x64 / arm64。JadeUI 会按 Python 解释器架构下载匹配的 JadeView 原生库。
233
+
234
+ > 官方 JadeView 暂未提供 Linux 原生库(仍在开发中),当前 SDK 仅支持 Windows。
235
+
236
+ ### 使用注意
237
+
238
+ - 单次 `jade.invoke` payload 建议不超过 `1000KB`。实测 `1023KB` 可用,但精确 `1MiB` payload 加上 IPC 封装后会超过 JadeView bridge 的消息上限并被拒绝;更大的数据应使用分片或文件传递。
239
+
240
+ ## 许可证
241
+
242
+ MIT License
243
+
244
+ ## 链接
245
+
246
+ - [Python SDK 文档](https://jade.run/python-sdk)
247
+ - [JadeView 官网](https://jade.run)
248
+ - [GitHub](https://github.com/HG-ha/Jadeui)
249
+ - [PyPI](https://pypi.org/project/jadeui/)
250
+
jadeui-2.3.2/README.md ADDED
@@ -0,0 +1,213 @@
1
+ <p align="center">
2
+ <img src="assets/light.svg" alt="JadeUI Logo" width="120">
3
+ </p>
4
+
5
+ <h1 align="center">JadeUI</h1>
6
+
7
+ <p align="center">
8
+ <strong>Python SDK for JadeView - 使用 Web 技术构建桌面应用</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://pypi.org/project/jadeui/"><img src="https://img.shields.io/pypi/v/jadeui.svg" alt="PyPI version"></a>
13
+ <a href="https://pypi.org/project/jadeui/"><img src="https://img.shields.io/pypi/pyversions/jadeui.svg" alt="Python versions"></a>
14
+ </p>
15
+
16
+ ---
17
+
18
+ JadeUI 是 [JadeView](https://jade.run) 的 Python SDK,让你可以使用 Python + Web 技术构建现代桌面应用程序。
19
+
20
+ ## 特性
21
+
22
+ - **WebView 窗口** - 使用 HTML/CSS/JS 构建 UI
23
+ - **现代外观** - 支持 Windows 11 Mica/Acrylic 效果
24
+ - **主题切换** - Light/Dark/System 主题
25
+ - **IPC 通信** - Python 与前端双向通信
26
+ - **对话框 API** - 文件选择、消息框 (v1.3.0+)
27
+ - **通知 API** - Windows 原生桌面通知 (v1.3.0+)
28
+ - **系统托盘** - 托盘图标、提示与右键菜单 (v2.2.4+)
29
+ - **全局热键** - 应用在后台也能响应的快捷键 (v2.2.4+)
30
+ - **剪贴板 / 系统信息** - 剪贴板读写、显示器/语言/系统路径 (v2.2.4+)
31
+ - **窗口增强** - 缩放、任务栏进度/闪烁、DevTools、内容保护等 (v2.2.4+)
32
+ - **YAML 存储 / 系统集成** - 持久化存储、开机自启、文件图标、NTP 网络时间 (v2.3.0+)
33
+ - **窗口集成增强** - 不进任务栏、不抢焦点、窗口层级、HWND 反查窗口 ID (v2.3.0+)
34
+ - **打包体积** - 极小的依赖,打包后体积仅有8MB左右
35
+
36
+ > 本版本对应 JadeView 原生 **v2.3.0 (Build 26G02)**。从 2.2.4 升级的变更与实机验收结果详见 [docs/UPGRADE_v2.3.0.md](docs/UPGRADE_v2.3.0.md)。
37
+
38
+ ## 安装
39
+
40
+ ```bash
41
+ pip install jadeui
42
+ ```
43
+
44
+ ## CLI 快速开始
45
+
46
+ 安装后可使用统一命令行工具 `jadeui`:
47
+
48
+ ```bash
49
+ jadeui init my-app --frontend html # 也可选 vue / react
50
+ cd my-app
51
+ jadeui doctor # 检查 Python / DLL / Nuitka / Node+asar
52
+ jadeui run # 开发运行
53
+ jadeui japk # 前端打包为明文 app.japk(需 @electron/asar)
54
+ jadeui build # 宿主打包为 exe(默认 Nuitka)
55
+ jadeui build --packager pyinstaller # 可选 PyInstaller
56
+ ```
57
+
58
+ 常用子命令:`init` / `run` / `doctor` / `japk` / `build` / `download` / `clean`。
59
+
60
+ 旧入口 `jadeui-download`、`jadeui-clean` 仍然可用。
61
+
62
+ 项目元数据(可选)读 `pyproject.toml`:CLI 显式参数优先,其次 `[tool.jadeui]`,再回退 `[project].name`(例如 `jadeui build` 的默认输出名)。与 uv / conda 等共用同一份 `pyproject.toml` 时互不冲突——JadeUI 只使用 `[tool.jadeui]` 命名空间。
63
+
64
+ ## JadeView DLL 更新规则
65
+
66
+ JadeUI SDK 只会在已适配的 JadeView API 版本内自动选择最新构建号。例如 `2.3.0.26G02` 可以自动更新到同一 tag 下的后续 build,但不会自动跨到 `2.4` 或其它 release tag。
67
+
68
+ ```bash
69
+ jadeui download # 下载当前 SDK 适配版本的最新 build
70
+ jadeui download --build 26G02 # 固定下载指定 build
71
+ # 兼容旧命令:
72
+ jadeui-download
73
+ ```
74
+
75
+ 当前按 Python 解释器架构选择上游原生包:
76
+
77
+ - Windows: `x86` / `x64` / `arm64`,下载 `JadeView_win_{arch}_*.zip`,加载 `JadeView_{arch}.dll`
78
+
79
+ 跨 minor/major 的原生版本升级(如 `2.2` -> `2.3`)可能包含 ABI/API 变化,必须由 SDK 显式适配后再升级。
80
+
81
+ ## 快速开始
82
+
83
+ ### CLI 脚手架
84
+
85
+ ```bash
86
+ jadeui init my-app --frontend html
87
+ cd my-app
88
+ jadeui run
89
+ ```
90
+
91
+ ### 最简模式
92
+
93
+ ```python
94
+ from jadeui import Window
95
+
96
+ Window(title="Hello JadeUI", url="https://example.com").run()
97
+ ```
98
+
99
+ ### 本地应用(自动检测 web 目录)
100
+
101
+ ```python
102
+ from jadeui import Window
103
+
104
+ Window(title="My App").run() # 自动加载 web/index.html
105
+ ```
106
+
107
+ ### 完整模式(多窗口、全局事件)
108
+
109
+ ```python
110
+ from jadeui import JadeUIApp, Window
111
+
112
+ app = JadeUIApp()
113
+
114
+ @app.on_ready
115
+ def on_ready():
116
+ Window(title="Window 1", url="https://example.com").show()
117
+ Window(title="Window 2", url="https://google.com").show()
118
+
119
+ app.run()
120
+ ```
121
+
122
+ ## 示例项目
123
+
124
+ 查看 [examples](./examples) 目录获取完整示例:
125
+
126
+ | 示例 | 说明 |
127
+ |------|------|
128
+ | [simple](./examples/simple) | **最简示例** - 几行代码创建应用 |
129
+ | [calculator](./examples/calculator) | 基础计算器,展示窗口创建和 IPC 通信 |
130
+ | [backdrop_demo](./examples/backdrop_demo) | Windows 11 Mica/Acrylic 背景效果 |
131
+ | [router_demo](./examples/router_demo) | 内置路由系统实现多页面应用 |
132
+ | [custom_template](./examples/custom_template) | 自定义 HTML 模板和样式 |
133
+ | [vue_app](./examples/vue_app) | Vue.js + JadeUI 集成示例 |
134
+ | [dialog_notification_demo](./examples/dialog_notification_demo) | 对话框与桌面通知 (v1.3.0+) |
135
+ | [p3_demo](./examples/p3_demo) | **系统托盘 / 全局热键 / 剪贴板 / 系统信息 / 窗口增强** (v2.2.4+) |
136
+ | [v23_demo](./examples/v23_demo) | **YAML 存储 / 窗口层级 / 文件图标 / NTP / 拖拽事件** (v2.3.0+) |
137
+
138
+ ### 效果预览
139
+
140
+ | Simple | Calculator | Backdrop |
141
+ |:---:|:---:|:---:|
142
+ | ![Simple](assets/simple.png) | ![Calculator](assets/calculator_iiBxCxUko6.png) | ![Backdrop](assets/backdrop_demo.png) |
143
+
144
+ | Router | Custom Template | Vue App |
145
+ |:---:|:---:|:---:|
146
+ | ![Router](assets/router_demo.png) | ![Custom](assets/custom_demo.png) | ![Vue](assets/vueapp.png) |
147
+
148
+ ## API 文档
149
+
150
+ 完整文档请访问: https://jade.run/python-sdk
151
+
152
+ ## 前端资源包(JAPK)
153
+
154
+ JAPK 打包的是 **HTML/CSS/JS 等前端资源**(不是 Python exe)。官方说明见 [JAPK 文档](https://jade.run/docs/api/japk)。
155
+
156
+ | 方式 | 工具 | 说明 |
157
+ |------|------|------|
158
+ | 明文 ASAR 兼容包 | `jadeui japk`(底层 `@electron/asar`) | 开发/内部工具,命令行可用 |
159
+ | 混淆 / 签名包 | [JadePack](https://jade.run/jadepack) 桌面客户端 | **生产推荐**(签名包为 AES-256-GCM + Ed25519) |
160
+
161
+ ```bash
162
+ # 需先安装 Node.js,并执行: npm install -g @electron/asar
163
+ jadeui japk # 默认 web -> dist/app.japk
164
+ jadeui japk --src web -o dist/app.japk
165
+ ```
166
+
167
+ 运行时可用目录、`.japk` 路径或内存加载:
168
+
169
+ ```python
170
+ from jadeui import Window
171
+
172
+ Window(title="My App").run(japk="dist/app.japk")
173
+ ```
174
+
175
+ ## 打包发布(宿主 exe)
176
+
177
+ 默认使用 **Nuitka** 将 Python 宿主打包为独立可执行文件;也可用 PyInstaller:
178
+
179
+ ```bash
180
+ # Nuitka(推荐;onefile 建议使用 4.0rc7)
181
+ # pip install https://github.com/HG-ha/jadeui/raw/main/scripts/nuitka-4.0.rc7.zip
182
+ jadeui build app.py -o your_app
183
+
184
+ # 可选 PyInstaller
185
+ pip install jadeui[pyinstaller]
186
+ jadeui build app.py -o your_app --packager pyinstaller
187
+ ```
188
+
189
+ 兼容旧脚本:`python scripts/build.py your_app.py -o your_app`(内部转发到同一实现)。
190
+
191
+ ## 系统要求
192
+
193
+ - **操作系统**: Windows 10/11
194
+ - **Python**: 3.7+
195
+ - **Python 架构**: Windows 支持 x86 / x64 / arm64。JadeUI 会按 Python 解释器架构下载匹配的 JadeView 原生库。
196
+
197
+ > 官方 JadeView 暂未提供 Linux 原生库(仍在开发中),当前 SDK 仅支持 Windows。
198
+
199
+ ### 使用注意
200
+
201
+ - 单次 `jade.invoke` payload 建议不超过 `1000KB`。实测 `1023KB` 可用,但精确 `1MiB` payload 加上 IPC 封装后会超过 JadeView bridge 的消息上限并被拒绝;更大的数据应使用分片或文件传递。
202
+
203
+ ## 许可证
204
+
205
+ MIT License
206
+
207
+ ## 链接
208
+
209
+ - [Python SDK 文档](https://jade.run/python-sdk)
210
+ - [JadeView 官网](https://jade.run)
211
+ - [GitHub](https://github.com/HG-ha/Jadeui)
212
+ - [PyPI](https://pypi.org/project/jadeui/)
213
+
@@ -19,6 +19,8 @@ Window(title="My App", url="https://example.com").run()
19
19
  | [backdrop_demo](./backdrop_demo/) | Windows 11 Mica/Acrylic 背景效果 | ⭐⭐ |
20
20
  | [dialog_notification_demo](./dialog_notification_demo/) | **对话框和通知** (v1.3.0+) | ⭐⭐ |
21
21
  | [router_demo](./router_demo/) | 内置路由系统,多页面应用 | ⭐⭐⭐ |
22
+ | [p3_demo](./p3_demo/) | 系统托盘、全局热键、剪贴板、系统信息、窗口增强 (v2.2.4+) | ⭐⭐⭐ |
23
+ | [v23_demo](./v23_demo/) | YAML 存储、窗口层级、文件图标、NTP、拖拽事件 (v2.3.0+) | ⭐⭐⭐ |
22
24
  | [custom_template](./custom_template/) | 自定义 HTML 模板 | ⭐⭐⭐ |
23
25
  | [vue_app](./vue_app/) | Vue.js 前端框架集成 | ⭐⭐⭐ |
24
26
 
@@ -17,16 +17,10 @@ python app.py
17
17
 
18
18
  ## 打包
19
19
 
20
- 首先安装开发依赖(包含 nuitka):
20
+ `examples/backdrop_demo` 目录下执行:
21
21
 
22
22
  ```bash
23
- pip install jadeui[dev]
24
- ```
25
-
26
- 然后在 `examples/backdrop_demo` 目录下执行:
27
-
28
- ```bash
29
- python ../../scripts/build.py app.py -o backdrop
23
+ jadeui build app.py -o backdrop
30
24
  ```
31
25
 
32
26
  ## 背景材料
@@ -18,19 +18,14 @@ python examples/calculator/app.py
18
18
 
19
19
  ## 打包
20
20
 
21
- 首先安装开发依赖(包含 nuitka):
21
+ `examples/calculator` 目录下执行:
22
22
 
23
23
  ```bash
24
- pip install jadeui[dev]
24
+ jadeui build app.py -o calculator
25
+ # 或: jadeui build app.py -o calculator --packager pyinstaller
25
26
  ```
26
27
 
27
- 然后在 `examples/calculator` 目录下执行:
28
-
29
- ```bash
30
- python ../../scripts/build.py app.py -o calculator
31
- ```
32
-
33
- 脚本会自动包含 `web` 目录和 `web/favicon.png` 图标。
28
+ 会自动包含 `web` 目录和 `web/favicon.png` 图标(若存在)。
34
29
 
35
30
  ## 文件结构
36
31
 
@@ -16,16 +16,10 @@ python app.py
16
16
 
17
17
  ## 打包
18
18
 
19
- 首先安装开发依赖(包含 nuitka):
19
+ `examples/custom_template` 目录下执行:
20
20
 
21
21
  ```bash
22
- pip install jadeui[dev]
23
- ```
24
-
25
- 然后在 `examples/custom_template` 目录下执行:
26
-
27
- ```bash
28
- python ../../scripts/build.py app.py -o custom
22
+ jadeui build app.py -o custom
29
23
  ```
30
24
 
31
25
  ## 文件结构
@@ -17,16 +17,10 @@ python app.py
17
17
 
18
18
  ## 打包
19
19
 
20
- 首先安装开发依赖(包含 nuitka):
20
+ `examples/router_demo` 目录下执行:
21
21
 
22
22
  ```bash
23
- pip install jadeui[dev]
24
- ```
25
-
26
- 然后在 `examples/router_demo` 目录下执行:
27
-
28
- ```bash
29
- python ../../scripts/build.py app.py -o router_demo
23
+ jadeui build app.py -o router_demo
30
24
  ```
31
25
 
32
26
  ## 文件结构
@@ -0,0 +1,19 @@
1
+ # JadeUI v2.3 Demo
2
+
3
+ 演示 JadeView v2.3 适配后的常用能力:
4
+
5
+ - YAML 存储:写入、读取(含 `get_str`)、列 key、清理
6
+ - 窗口:HWND、跳过任务栏、不抢焦点、窗口层级
7
+ - 系统:文件图标、开机自启状态、NTP、打印机列表
8
+ - 拖拽:`drag-drop` 阶段事件
9
+ - 自定义标题栏:`jade-region-drag` / `jade-region-no-drag`
10
+
11
+ ## 运行
12
+
13
+ ```bash
14
+ python examples/v23_demo/app.py
15
+ ```
16
+
17
+ 写法与其它示例一致:`JadeUIApp` + `LocalServer` + `IPCManager`,在 `@app.on_ready` 里创建窗口。
18
+
19
+ `Skip Taskbar`、`No Activate`、窗口层级和拖拽需要手动观察;`NTP` 依赖本机网络。
@@ -43,16 +43,10 @@ python app.py
43
43
 
44
44
  ### 4. 打包
45
45
 
46
- 首先安装开发依赖(包含 nuitka):
46
+ `examples/vue_app` 目录下执行:
47
47
 
48
48
  ```bash
49
- pip install jadeui[dev]
50
- ```
51
-
52
- 然后在 `examples/vue_app` 目录下执行:
53
-
54
- ```bash
55
- python ../../scripts/build.py app.py -o vueapp
49
+ jadeui build app.py -o vueapp
56
50
  ```
57
51
 
58
52
  ## 开发模式
@@ -43,17 +43,20 @@ With IPC:
43
43
 
44
44
  from . import utils
45
45
  from .app import JadeUIApp
46
+ from .clipboard import Clipboard
46
47
  from .core.types import RGBA, WebViewSettings, WebViewWindowOptions
47
48
  from .dialog import Dialog, MessageBoxType, OpenDialogProperties
48
49
  from .downloader import (
49
- VERSION as DLL_VERSION,
50
- )
51
- from .downloader import (
50
+ DLL_API_VERSION,
51
+ DLL_BUILD,
52
52
  download_dll,
53
53
  ensure_dll,
54
54
  find_dll,
55
55
  get_architecture,
56
56
  )
57
+ from .downloader import (
58
+ VERSION as DLL_VERSION,
59
+ )
57
60
  from .events import EventEmitter, Events
58
61
  from .exceptions import (
59
62
  DLLLoadError,
@@ -63,13 +66,19 @@ from .exceptions import (
63
66
  ServerError,
64
67
  WindowCreationError,
65
68
  )
69
+ from .hotkey import HotKey
66
70
  from .ipc import IPCManager
71
+ from .japk import Japk, JapkError
72
+ from .menu import Menu
67
73
  from .notification import Notification
68
74
  from .router import Router
69
75
  from .server import LocalServer
76
+ from .storage import Storage
77
+ from .system import CLEAR_DATA_CONFIRM_TOKEN, System
78
+ from .tray import Tray
70
79
  from .window import Backdrop, Theme, Window
71
80
 
72
- __version__ = "1.3.0"
81
+ __version__ = "2.3.2"
73
82
  __author__ = "JadeView Team"
74
83
  __license__ = "MIT"
75
84
 
@@ -86,6 +95,17 @@ __all__ = [
86
95
  "OpenDialogProperties",
87
96
  # Notification API (v1.3.0+)
88
97
  "Notification",
98
+ # P3 APIs (JadeView 2.x)
99
+ "Clipboard",
100
+ "System",
101
+ "CLEAR_DATA_CONFIRM_TOKEN",
102
+ "Storage",
103
+ "HotKey",
104
+ "Tray",
105
+ "Menu",
106
+ # JAPK
107
+ "Japk",
108
+ "JapkError",
89
109
  # Constants
90
110
  "Theme",
91
111
  "Backdrop",
@@ -108,7 +128,9 @@ __all__ = [
108
128
  "ensure_dll",
109
129
  "find_dll",
110
130
  "get_architecture",
131
+ "DLL_API_VERSION",
111
132
  "DLL_VERSION",
133
+ "DLL_BUILD",
112
134
  # Utilities
113
135
  "utils",
114
136
  # Memory management (v1.0+)