术语表
本页面统一解释 Uniquenium 文档中使用的核心术语。这些概念存在层级包含关系,理解它们的区别是使用和开发 Uniquenium 的基础。
概念层级一览
主题 (Theme)
├── 组件组 / 页面布局
├── 全局外观设置(颜色、字体、壁纸、光标)
├── 插件 (Plugin)
│ └── 组件 (Component) ← 由控件组合而成
│ └── 控件 (Control)
└── 模板 (Template) ← 组件组的预设快照核心术语
控件(Control)
组成用户界面的最基础、不可再分的视觉元件。
控件是 UniDesk 控件库提供的原子级 UI 单元,例如按钮、文本框、图标、复选框等。控件本身不能直接显示在桌面上,而是作为构建组件的「积木」被组合使用。
- 来源:由 Uniquenium 官方提供的 UniDesk 控件库(
UniDesk.Controls模块) - 数量:30+ 种(如
UniDeskButton、UniDeskText、UniDeskWindow等) - 能否独立显示:❌ 不能直接拖到桌面,必须在组件内使用
- 命名规范:
UniDesk+ 控件名(如UniDeskButton)
类比
控件就像是 LEGO 积木中的单个零件——一块砖、一个轮子、一扇窗。它们本身不是完整的作品,但是组合起来可以构建任何东西。
📖 详见:UniDesk 控件库概览
组件(Component)
由一个或多个控件组合而成的独立功能单元,直接渲染在桌面上供用户使用。
组件是用户在桌面上实际看到和交互的对象。每个组件由插件定义,用户可在插件提供的范围内自由组合控件,定制组件的外观和行为。
- 来源:由插件提供
- 能否独立显示:✅ 直接显示在桌面上
- 包含关系:组件 = 多个控件 + 布局 + 逻辑
- 标识:每个组件实例都有唯一的 标识符
类比
如果控件是 LEGO 零件,那么组件就是用这些零件拼装成的一辆小汽车、一栋小房子——它是一个完整可用的作品,摆放在桌面上。
示例:一个「时钟组件」可能由以下控件组合而成:
UniDeskFrame(外框)UniDeskText(时间显示)UniDeskText(日期显示)UniDeskButton(设置按钮)
插件(Plugin)
Uniquenium 的扩展单元,一个插件可以包含一个或多个组件,以及配套的选项窗口、设置和多语言资源。
插件是 Uniquenium 扩展功能的主要方式。每个插件是一个独立的模块,可以:
- 提供一个或多个组件供用户添加到桌面
- 提供组件对应的选项窗口(可选),让用户配置组件参数
- 提供插件全局设置窗口(规划中),管理插件级偏好
- 自带多语言资源,支持国际化
| 组成部分 | 是否必需 | 说明 |
|---|---|---|
| 组件 | ✅ 必需 | 至少提供一个组件 |
| 选项窗口 | ❌ 可选 | 组件的配置 UI |
| 设置窗口 | ❌ 可选 | 插件全局设置(后期制作) |
| 语言文件 | ❌ 可选 | 多语言翻译资源 |
类比
插件就像一个「组件礼包」——它打包了一组相关的组件以及配套的配置工具。安装一个天气插件,你就同时获得了「当前天气」「天气预报」「空气质量」等多个组件,以及它们的设置入口。
📖 详见:插件开发指南
标识符(identification)
系统为每个组件实例分配的唯一标识,用于在内部引用、定位和管理。
关于命名
「identification」一词并非标准英语(正确说法应为 identifier 或 ID),但它作为 Uniquenium 代码与文档中的专有术语被保留使用。在阅读源码或 API 时请将其理解为「标识符」。
- 作用:区分同一类型的多个组件实例(例如桌面上有 3 个时钟组件)
- 生成方式:由系统自动生成(通常基于 UUID)
- 生命周期:组件创建时分配,组件删除时失效
- 用途:脚本引用、事件绑定、属性查询、组件间通信
// 示例:通过标识符获取组件并修改属性
var com = UniDeskComManager.getComByIdentification("com_a1b2c3d4")
com.x = 100
com.visible = true模板(Template)
一组预先配置好的组件集合,保存了组件的布局、属性和关联关系,支持预设参数。
模板是「组件组的快照」,让用户可以:
- 快速复用:一键应用一整套桌面布局,无需逐个添加组件
- 备份分享:将精心设计的桌面配置导出为
.uniq-template文件 - 预设参数:模板可保存组件的预设值,导入时可选择应用或自定义
拼写说明
正确拼写为 Template。早期版本中曾被误拼为 "templete"(未查词典的生造拼写),如果你在旧文档、代码变量或文件名中看到 templete,请理解为 template。新版本已统一修正。
- 文件格式:
.uniq-template(本质是 ZIP 压缩包) - 包含内容:组件树结构 + 各组件属性 + 预览图
- 不包含:外部图片/字体资源、插件本身(需另行安装)
类比
模板就像「桌面布局的存档」——你花了一下午精心摆放的桌面,可以存成模板,下次重装系统或换电脑时一键恢复,也可以发给朋友让他们体验同款桌面。
📖 详见:模板系统
主题(Theme)
一套完整的桌面配置方案,包含所有组件组页面布局、全局外观设置、已启用的插件列表以及关联的模板。
主题是 Uniquenium 中最高层级的配置单元,切换主题即可一键切换整套桌面风格。一个主题包含:
| 组成部分 | 说明 |
|---|---|
| 组件组页面布局 | 所有页面的组件摆放、尺寸、层级 |
| 全局外观设置 | 主题色、深浅模式、字体、壁纸、光标样式 |
| 插件列表 | 该主题下启用的插件及版本 |
| 模板关联 | 该主题引用的模板集合 |
类比
主题就像手机上的「主题商店」——不只是换张壁纸那么简单,而是图标、字体、铃声、布局一起换。Uniquenium 的主题也是一站式切换整套桌面体验。
术语关系对照表
| 术语 | 英文 | 层级 | 能否独立显示 | 由谁提供 |
|---|---|---|---|---|
| 控件 | Control | 最底层(原子) | ❌ | UniDesk 控件库(官方) |
| 组件 | Component | 中间层(分子) | ✅ 桌面显示 | 插件 |
| 插件 | Plugin | 扩展层(礼包) | ❌(提供组件) | 开发者 / 社区 |
| 模板 | Template | 预设层(快照) | ❌(应用后显示) | 用户导出 / 社区分享 |
| 主题 | Theme | 顶层(方案) | ❌(应用后生效) | 用户 / 官方预设 |
| 标识符 | identification | 内部引用 | — | 系统自动生成 |
常见混淆辨析
Q: 「控件」和「组件」有什么区别?
控件是 UI 的原子单元(如一个按钮),不能独立显示在桌面;组件是由控件组合而成的功能单元(如一个时钟),可以直接显示在桌面。
✅ 正确说法:「我在桌面上添加了一个时钟组件」 ❌ 错误说法:「我在桌面上添加了一个时钟控件」
Q: 「插件」和「组件」有什么区别?
插件是容器/礼包,组件是插件提供的具体内容。一个插件可以包含多个组件。
✅ 正确说法:「我安装了天气插件,它提供了 3 个天气相关的组件」 ❌ 错误说法:「我安装了一个天气组件」
Q: 「模板」和「主题」有什么区别?
模板保存的是单个组件组的布局快照;主题是整套桌面配置(包含多个组件组布局 + 外观 + 插件 + 模板)。
✅ 正确说法:「我切换了一个主题,整个桌面风格都变了」 ✅ 正确说法:「我把这个面板导出为模板,方便以后复用」
在代码中的体现
// === 控件(Control)===
// 来自 UniDesk.Controls 模块,是构建组件的原子单元
import UniDesk.Controls 1.0
UniDeskButton { // ← 这是控件
contentText: "点我"
}
// === 组件(Component)===
// 由插件定义,组合多个控件,可显示在桌面
// 通常位于 Plugins/MyPlugin/Components/ 目录
Item {
id: clockComponent // ← 这是组件(由控件组合而成)
UniDeskFrame { ... } // 控件
UniDeskText { ... } // 控件
UniDeskText { ... } // 控件
}
// === 标识符(identification)===
// 每个组件实例的唯一 ID
var myCom = UniDeskComManager.createCom("ClockPlugin.ClockComponent")
console.log(myCom.identification) // 例如 "com_a1b2c3d4-e5f6-7890"
// === 插件(Plugin)===
// 通常是一个文件夹,包含 plugin.json + 组件 + 选项窗口
// Plugins/WeatherPlugin/
// ├── plugin.json
// ├── CurrentWeather.qml (组件)
// ├── WeatherForecast.qml (组件)
// └── WeatherOptions.qml (选项窗口)
// === 模板(Template)===
// .uniq-template 文件,组件组的预设快照
// 加载方式:
UniDeskComManager.loadTemplate("file:///C:/Templates/MyPanel.uniq-template")
// === 主题(Theme)===
// 完整的桌面配置方案,包含上述所有内容
// 切换方式:
UniDeskSettings.applyTheme("file:///C:/Themes/DarkMode.uniq-theme")相关文档
- UniDesk 控件库概览 - 控件(Control)的完整 API
- 插件开发指南 - 如何开发插件与组件
- 模板系统 - 模板的导入导出
- UniDeskComManager - 组件管理单例

