跳转至

快速开始

先完成安装,然后几行代码跑起第一个窗口。

运行环境要求 Python 3.9+ 与 PySide6 6.9+(Qt 6.9+)。

第一个窗口

from prismqml import App, WindowType

app = App()
window = app.create_window(WindowType.BAR)
window.setWindowTitle("我的应用")
window.resize(1200, 800)

window.show()
app.exec()

通过 window.addPage(PageClass, icon, text) 可继续添加应用自己的页面类、页面 工厂或页面实例;需要异步孵化 QML 对象树时使用 AsyncQmlPage。完整导航用法见 窗口指南

App 自动完成 DPI 适配、消息处理器安装、register_types(注册 QML 类型)、 异步孵化控制器等初始化,并在创建引擎前显式启用 Translator 读取本地 i18n JSON 所需的 QML XHR。普通 import prismqml 不会修改进程环境;不需要本地翻译读取时 可使用 App(allow_qml_file_read=False)

若自行创建 QApplicationQQmlApplicationEngine,必须在创建应用对象前调用 prismqml.python.runtime.prepare_application_environment(allow_qml_file_read=True), 并在创建引擎后调用 register_types(engine)。只调用 configure_qml_environment() 不会配置 DPI、消息处理器或 Windows 图形后端。

Windows 下完整装配入口会在创建首个 QQuickWindow 前固定选择 D3D11;无需也 不应由应用代码切换到 OpenGL。macOS 与 Linux 保留 Qt 的平台默认图形后端。

在 QML 中使用控件

import PrismQML as Fluent

Fluent.Button {
    text: "确定"
    style: Fluent.Enums.button.style_primary   // primary 自动用全局主题色
}

ComboBox / Slider

ComboBoxSlider 已在顶层 PrismQML 模块注册。通过模块别名直接使用 Fluent.ComboBox / Fluent.Slider,无需导入 QtQuick.Controls 或内部目录。

一键切换皮肤

PrismQML 的招牌能力——同一套界面,运行时切换设计语言:

from prismqml import setSkin, Skin

setSkin(Skin.FLUENT)         # Fluent Design
setSkin(Skin.NEOBRUTALISM)   # 新粗野
setSkin(Skin.VINTAGE_TICKET) # 复古票据
setSkin(Skin.NEUMORPHISM)    # 新拟态

详见 皮肤系统

项目结构

prismqml/
├── PrismQML/              # QML 组件(模块名 PrismQML)
│   ├── controls/          # UI 控件
│   ├── _internal/         # 内部窗口实现
│   └── PrismEnums/        # 枚举与常量
└── python/                # Python 模块
    ├── config/            # 配置管理系统
    ├── core/              # 底层能力(主题/日志/图标/窗口辅助)
    ├── runtime/           # 运行时装配(注册/外观持久化边界)
    ├── window/            # 窗口管理(懒加载/云母/托盘)
    ├── state/             # 响应式状态存储
    ├── providers/         # 功能提供者(SVG/二维码/取色器)
    └── models/            # 数据模型(高性能表格)