在本页

想象风格

Imagine 风格基于可配置的图像资产。更多

导入声明:导入 QtQuick.Controls.Imagine
Qt 5.10

附加属性

详细描述

Imagine 风格基于图像资产。该样式自带一组默认图片,但只要提供一个使用预定义命名规则的图片目录,就能轻松更改图片。

Imagine 风格控件图库

带有默认图片的 Imagine 风格

要使用 Imagine 样式运行应用程序,请参阅Qt Quick 控件中使用样式

文件名

图像文件使用以下约定命名:

<control>-<element>-<states>

<control><element> 部分是必须的,但<states> 部分是可选的。例如,如果为Button 提供了名为"button-background.9.png" 的单一文件,那么Button 支持的每个状态都将使用该文件。开发者可自行决定为哪一组状态提供图片。不过,建议尽可能为最常见的控件状态提供图片,如disabled,pressed 等。这将确保交互式控件的视觉表现符合最终用户的预期。

元素参考

下表列出了每个控件支持的元素,以及该元素可能的状态和它所期望的文件扩展名。元素是代表控件特定视觉部分的图像。例如,Button"background" 元素表示其background

控件元素状态扩展
ApplicationWindow背景活动.9.png (或 .png)
BusyIndicator动画禁用、运行、镜像、悬停.webp
背景同上.webp
Button背景禁用、按下、选中、可选中、聚焦、高亮、平面、镜像、悬停.9.png
CheckBox背景禁用、按下、选中、部分选中、集中、镜像、悬停.9.png (或 .png)
指示器同上.png
CheckDelegate背景禁用、按下、选中、部分选中、聚焦、高亮、镜像、悬停.9.png (或 .png)
指示器同上.png
ComboBox背景禁用、按下、可编辑、打开、聚焦、镜像、悬停、平面.9.png (或 .png)
指示器同上.png
弹出窗口同上.9.png (或 .png)
DelayButton背景禁用、按下、选中、可选中、聚焦、镜像、悬停.9.png (或 .png)
进度同上.9.png (或 .png)
遮罩同上.9.png (或 .png)
Dial背景1禁用、按下、聚焦、镜像、悬停.9.png (或 .png)
句柄同上.9.png (或 .png)
Dialog背景模态,暗.9.png (或 .png)
标题同上.9.png (或 .png)
覆盖模式.9.png (或 .png)
DialogButtonBox背景禁用,镜像.9.png (或 .png)
Drawer背景模态、暗淡、顶部、左侧、右侧、底部.9.png (或 .png)
叠加模式.9.png (或 .png)
Frame背景禁用,镜像.9.png (或 .png)
GroupBox背景禁用,镜像.9.png (或 .png)
标题同上.9.png (或 .png)
ItemDelegate背景禁用、按下、聚焦、高亮、镜像、悬停.9.png (或 .png)
Label背景禁用、镜像、悬停.9.png (或 .png)
Menu背景模态、暗淡.9.png (或 .png)
叠加模式.9.png (或 .png)
MenuItem箭头禁用、按下、选中、聚焦、高亮、镜像、悬停.png
背景同上.9.png (或 .png)
指示器同上.png
MenuSeparator背景禁用,镜像.9.png (或 .png)
分隔线同上.9.png (或 .png)
Page背景禁用,镜像.9.png (或 .png)
PageIndicator背景禁用、镜像、悬停.9.png (或 .png)
委托禁用、按下、当前、镜像、悬停.png
Pane背景禁用、镜像.9.png (或 .png)
Popup背景模态、暗淡.9.png (或 .png)
叠加模式.9.png (或 .png)
ProgressBar动画禁用、镜像、悬停.png
背景禁用、不确定、镜像、悬停.9.png (或 .png)
遮罩同上.9.png (或 .png)
进度同上.9.png (或 .png)
RadioButton背景禁用、按下、选中、聚焦、镜像、悬停.9.png (或 .png)
指示器同上.png
RadioDelegate背景禁用、按下、选中、聚焦、高亮、镜像、悬停.9.png (或 .png)
指示器同上.png
RangeSlider背景垂直、水平、禁用、聚焦、镜像、悬停.9.png (或 .png)
RangeSlider进度同上.9.png (或 .png)
处理第一、第二、垂直、水平、禁用、按下、聚焦、镜像、悬停.png
RoundButton背景禁用、按下、选中、可选中、聚焦、高亮、平面、镜像、悬停.9.png (或 .png)
ScrollBar背景垂直、水平、禁用、交互式、按下、镜像、悬停.9.png (或 .png)
句柄同上.9.png (或 .png)
ScrollIndicator背景垂直、水平、禁用、镜像、悬停.9.png (或 .png)
句柄同上.9.png (或 .png)
ScrollView背景禁用,镜像.9.png (或 .png)
Slider背景垂直、水平、禁用、按下、聚焦、镜像、悬停.9.png (或 .png)
句柄同上.9.png (或 .png)
进度同上.9.png (或 .png)
SpinBox背景禁用、可编辑、聚焦、镜像、悬停.9.png (或 .png)
编辑器禁用、聚焦、镜像、悬停.9.png (或 .png)
指示器上、下、禁用、可编辑、按下、聚焦、镜像、悬停.9.png (或 .png)
StackView背景禁用、镜像.9.png (或 .png)
SwipeDelegate背景禁用、按下、聚焦、高亮、镜像、悬停.9.png (或 .png)
SwipeView背景垂直、水平、禁用、交互式、聚焦、镜像.9.png (或 .png)
Switch背景禁用、按下、选中、聚焦、镜像、悬停.9.png (或 .png)
句柄同上.9.png (或 .png)
指示器同上.9.png (或 .png)
SwitchDelegate背景禁用、按下、选中、聚焦、高亮、镜像、悬停.9.png (或 .png)
句柄同上.9.png (或 .png)
指示器同上.9.png (或 .png)
TabBar背景禁用、页眉、页脚、镜像.9.png (或 .png)
TabButton背景禁用、按下、选中、聚焦、镜像、悬停.9.png (或 .png)
TextArea背景禁用、聚焦、镜像、悬停.9.png (或 .png)
TextField背景禁用、聚焦、镜像、悬停.9.png (或 .png)
ToolBar背景禁用、页眉、页脚、镜像.9.png (或 .png)
ToolButton背景禁用、按下、选中、可选中、聚焦、高亮、平面、镜像、悬停.9.png (或 .png)
ToolSeparator背景垂直、水平、禁用、镜像.9.png (或 .png)
分隔符同上.9.png (或 .png)
ToolTip背景.9.png (或 .png)
Tumbler背景禁用、聚焦、镜像、悬停.9.png (或 .png)

注: 1)Imagine 风格 Dial 尚不支持 Qt 6.6 中引入的startAngleendAngle 属性,而是使用固定的背景图片。

资产示例

下表列出了所有控件的资产示例(取自默认 Imagine 风格资产)。该列表并非详尽无遗,因为并非所有元素都需要资产,但在创建您自己的资产时,该列表可用作指南。

这些资产导出的模板可作为Sketch 项目使用。

控制元素状态资产备注
ApplicationWindow背景

应用程序窗口背景资产

见脚注 1
覆盖

应用程序窗口叠加资产

见脚注 1
覆盖模态

应用程序窗口叠加模式资产

见脚注 1
Button背景

按钮背景资产

背景残疾

禁用按钮背景资产

背景聚焦

按钮背景重点资产

背景已按下

按钮背景已按下资产

背景已选中

按钮背景已检查资产

背景已检查、禁用

按钮背景检查禁用资产

背景已选中、集中

按钮背景已检查重点资产

背景选中、悬停

按钮背景已检查悬停资产

背景高亮显示

按钮背景高亮资产

背景高亮显示、禁用

按钮背景突出显示禁用资产

背景突出显示、聚焦

按钮背景高亮聚焦资产

背景高亮、悬停

按钮背景突出显示悬停资产

背景高亮显示,按下

按钮背景突出显示已按下的资产

背景高亮显示,选中

按钮背景突出显示已选中的资产

背景悬停

按钮背景悬停资产

背景平面

按钮背景平面资产

背景平面、残疾

按钮背景平面禁用资产

背景扁平、悬停

按钮背景平面悬停资产

背景扁平、按下

按钮背景平压资产

背景平,有格子

按钮背景平格资产

CheckBox指示器

复选框指标资产

指示器禁用

禁用复选框指示器资产

指示灯已按下

复选框指示器按下资产

指示灯已检查

选中资产的复选框指标

指示灯已检查,已按下

复选框指示器选中已按下的资产

指示器选中,悬停

复选框指示器已选中悬停资产

指示器选中,聚焦

复选框指示器已选中重点资产

指示灯部分,已检查

部分选中资产的复选框指示器

指示灯部分,已检查,已按下

复选框指示器部分选中的资产被按下

指示灯部分、检查、集中

复选框指示器部分选中重点资产

指示灯部分、选中、悬停

部分选中的复选框指示器悬停资产

指示器集中

侧重于资产的复选框指示器

指标悬停

复选框指标悬停资产

CheckDelegate背景

CheckDelegate 背景资产

背景禁用

检查委托背景禁用资产

背景已按下

CheckDelegate 背景按压资产

背景聚焦

CheckDelegate 背景重点资产

背景悬停

CheckDelegate 背景悬停资产

指示器

CheckDelegate 指标资产

指示器禁用

已禁用 CheckDelegate 指标资产

指示灯已按下

按下资产的 CheckDelegate 指示器

指示灯已检查

CheckDelegate 指示器已选中资产

指示灯已检查,已按下

CheckDelegate 指示器已选中按下的资产

指示灯选中,聚焦

CheckDelegate 指示器已选中重点资产

指示器选中,悬停

CheckDelegate 指示器已选中悬停资产

指示器聚焦

CheckDelegate 指标侧重于资产

指示器悬停

检查委托指标悬停资产

指示器部分,选中

CheckDelegate 指标部分已核对资产

指示灯部分,已检查,已按下

CheckDelegate 指示器部分已选中按下资产

指示灯部分、检查、集中

CheckDelegate 指示器部分已选中的重点资产

指示灯部分、选中、悬停

CheckDelegate 指示器部分选中悬停资产

指示器悬停

检查委托指标悬停资产

ComboBox背景

ComboBox 背景资产

背景禁用

禁用 ComboBox 背景资产

背景聚焦

ComboBox 背景重点资产

背景悬停

ComboBox 背景悬停资产

背景按下

ComboBox 背景按下资产

背景打开

ComboBox 背景打开资产

背景可编辑

ComboBox 背景可编辑资产

背景可编辑、聚焦

ComboBox 背景可编辑重点资产

背景可编辑、禁用

ComboBox 背景可编辑资产被禁用

指示器

ComboBox 指示器资产

指示器禁用

ComboBox 指示器禁用资产

指示器可编辑

ComboBox 指标可编辑资产

指示器可编辑,禁用

ComboBox 指示器可编辑资产被禁用

指示器可编辑、镜像

ComboBox 指标可编辑镜像资产

指示器可编辑、镜像、禁用

ComboBox 指标可编辑镜像禁用资产

弹出窗口

ComboBox 弹出资产

DelayButton背景

DelayButton 的背景资产

背景禁用

已禁用 DelayButton 背景资产

背景禁用,选中

已选中已禁用背景的 DelayButton 资产

背景集中

DelayButton 背景重点资产

背景按下

DelayButton 背景已按下资产

背景检查

DelayButton 背景已选中资产

背景选中,集中

DelayButton 背景已选中重点资产

背景选中、悬停

已检查悬停资产的 DelayButton 背景

背景悬停

DelayButton 背景悬停资产

进度

DelayButton 进度资产

进度禁用

延迟按钮进度禁用资产

遮罩

DelayButton 屏蔽资产

Dial背景

拨号背景资产

背景禁用

拨号背景禁用资产

背景聚焦

拨号背景聚焦资产

处理

拨号手柄资产

句柄禁用

拨号柄禁用资产

手柄集中

拨号处理重点资产

手柄聚焦,按下

拨号手柄集中按压资产

手柄聚焦、悬停

拨号柄集中悬停资产

句柄按下

拨号手柄按下资产

句柄悬停

拨号柄悬停资产

Dialog背景

对话框背景资产

覆盖

对话框叠加资产

见脚注 1
覆盖模态

对话框叠加模式资产

见脚注 1
DialogButtonBox背景

DialogButtonBox 背景资产

Drawer背景左侧

抽屉背景左侧资产

背景

抽屉背景右侧资产

背景顶部

抽屉背景顶部资产

背景底部

抽屉背景底部资产

覆盖

抽屉覆盖资产

见脚注 1
覆盖模态

抽屉叠加模式资产

见脚注 1
Frame背景

框架背景资产

GroupBox背景

GroupBox 背景资产

标题

GroupBox 标题资产

ItemDelegate背景

ItemDelegate 背景资产

背景禁用

项目代理背景禁用资产

背景已按下

ItemDelegate 背景压入资产

背景集中

ItemDelegate 背景重点资产

背景悬停

ItemDelegate 背景悬停资产

背景高亮

项目委托背景高亮资产

Menu背景

菜单背景资产

MenuItem背景

菜单项背景资产

背景高亮显示

菜单项背景高亮资产

箭头

菜单项箭头资产

箭头镜像

菜单项箭头镜像资产

箭头禁用

禁用资产菜单项箭头

箭头镜像、禁用

菜单项箭头镜像禁用资产

指示器

菜单项指标资产

指示器禁用

菜单项指示器禁用资产

指示器按下

按下资产的 MenuItem 指示器

指示灯已检查

选中资产的 MenuItem 指示器

指示灯已检查,已按下

菜单项指示器选中已按下的资产

指示灯选中,聚焦

菜单项指示器已选中重点资产

指示器选中,悬停

菜单项指示器已选中悬停资产

指示器聚焦

菜单项指标聚焦资产

指标悬浮

菜单项指示器悬停资产

MenuSeparator分隔符

MenuSeparator 资产分隔符

Page背景

页面背景资产

参见脚注 1
PageIndicator委托

PageIndicator 代表资产

委托禁用

PageIndicator 代表禁用资产

代表禁用,当前

PageIndicator 代表禁用当前资产

委托已按下

PageIndicator 代表按资产

委托当前

PageIndicator 代表当前资产

Pane背景

窗格背景资产

Popup背景

弹出窗口背景资产

参见脚注 1
覆盖

弹出式覆盖资产

见脚注 1
覆盖模态

弹出叠加模式资产

ProgressBar背景

进度条背景资产

进度

ProgressBar 进度资产

掩码

ProgressBar 蒙版资产

RadioButton指示器

RadioButton 指示器资产

指示器禁用

禁用资产的 RadioButton 指示器

指示器按下

按下资产的 RadioButton 指示器

指示灯已检查

RadioButton 指示器已选中资产

指示灯已选中,已聚焦

RadioButton 指示器已选中重点资产

指示器选中,悬停

RadioButton 指示器已选中悬停资产

指示器选中,按下

RadioButton 指示器选中已按下的资产

指示器聚焦

RadioButton 指示器聚焦资产

指示器悬停

RadioButton 指示器悬停资产

RadioDelegate背景

RadioDelegate 后台资产

背景禁用

RadioDelegate 背景禁用资产

背景按下

RadioDelegate 背景按压资产

背景集中

RadioDelegate 背景重点资产

背景悬停

RadioDelegate 背景悬停资产

指示器

RadioDelegate 指标资产

指示器禁用

RadioDelegate 指示器禁用资产

指示器按下

按下资产的 RadioDelegate 指示器

指示灯已检查

已选中资产的 RadioDelegate 指标

指示灯已选中,已聚焦

RadioDelegate 指示器已选中重点资产

指示器选中,悬停

RadioDelegate 指示器已选中悬停资产

指示器选中,按下

RadioDelegate 指示器已选中按下的资产

指示器聚焦

聚焦资产的 RadioDelegate 指标

指示器悬停

RadioDelegate 指示器悬停资产

RangeSlider背景垂直

RangeSlider 背景垂直资产

背景水平

RangeSlider 背景水平资产

进度垂直

RangeSlider 进度垂直资产

进度垂直,禁用

RangeSlider 进度垂直禁用资产

进度水平

RangeSlider 进度水平资产

进度水平、禁用

RangeSlider 进度水平禁用资产

处理

范围滑块句柄资产

句柄禁用

禁用资产 RangeSlider 句柄

手柄集中

聚焦资产的 RangeSlider 句柄

手柄聚焦、悬停

RangeSlider 句柄聚焦悬停资产

句柄聚焦、按下

RangeSlider 句柄集中按压资产

句柄悬停

RangeSlider 句柄悬停资产

句柄按下

按下资产的 RangeSlider 句柄

RoundButton背景

RoundButton 背景资产

背景禁用

已禁用 RoundButton 背景资产

背景禁用,选中

RoundButton 背景已禁用,已选中资产

背景集中

RoundButton 背景重点资产

背景按下

RoundButton 背景已按下资产

背景检查

RoundButton 背景检查资产

背景选中,集中

RoundButton 背景已选中重点资产

背景选中、悬停

已检查悬停资产的 RoundButton 背景

背景高亮

RoundButton 背景高亮资产

背景高亮显示、按下

RoundButton 背景高亮显示已按下的资产

背景突出显示、聚焦

RoundButton 背景高亮聚焦资产

背景高亮显示、悬停

RoundButton 背景高亮显示悬停资产

背景悬停

RoundButton 背景悬停资产

ScrollBar处理

滚动条句柄资产

句柄禁用

禁用滚动条句柄资产

句柄交互式

滚动条处理互动资产

处理互动、禁用

滚动条处理交互式禁用资产

处理互动、按下

滚动条处理互动按下的资产

处理交互式、悬停

滚动条处理互动悬停资产

ScrollIndicator处理

滚动指示器句柄资产

Slider背景垂直

滑块背景垂直资产

背景水平

滑块背景水平资产

进度垂直

滑块进度垂直资产

进度垂直、禁用

垂直滑块进度禁用资产

进度横向

滑块进度水平资产

进度水平、禁用

水平滑块进度禁用资产

处理

滑块手柄资产

句柄残疾

滑块手柄禁用资产

处理重点

滑块手柄重点资产

手柄聚焦、悬停

滑块手柄集中悬停资产

句柄聚焦、按下

滑块手柄集中按压资产

句柄悬停

滑块手柄悬停资产

句柄按下

滑动手柄按压资产

SpinBox背景

SpinBox 背景资产

背景禁用

禁用 SpinBox 背景资产

背景聚焦

SpinBox 背景聚焦资产

背景可编辑

SpinBox 背景可编辑资产

指示器向上

SpinBox 指标向上资产

指示器向上,禁用

禁用资产的 SpinBox 向上指示器

指示灯向上,按下

SpinBox 指示器上按资产

指示灯向上,聚焦

SpinBox 指标向上集中资产

指示灯向上,镜像

镜像资产的 SpinBox 指标

指示器向上,悬停

SpinBox 指示器向上悬停资产

指示器向上,可编辑

可编辑资产上的 SpinBox 指示器

指示灯向上、可编辑、按下

SpinBox 指示器上的可编辑按压资产

指示符向上、可编辑、集中

SpinBox 指标向上可编辑的重点资产

指示器向上、可编辑、镜像

可编辑镜像资产的 SpinBox 指标

指示器向上、可编辑、悬停

SpinBox 指示器上的可编辑悬停资产

指示器向下

SpinBox 指标向下资产

指示器向下,禁用

SpinBox 向下指示器禁用资产

指示灯向下,按下

向下按压资产的 SpinBox 指示器

指示灯向下向下,聚焦

SpinBox 指标向下集中资产

指示灯向下向下,镜像

SpinBox 指标向下镜像资产

向下向下,悬停

SpinBox 指示器向下悬停资产

向下向下,可编辑

SpinBox 指标向下可编辑资产

指示灯向下、可编辑、按下

SpinBox 指标向下可编辑按压资产

指示符向下、可编辑、集中

SpinBox 指标向下可编辑的重点资产

指示器向下、可编辑、镜像

SpinBox 指标向下可编辑镜像资产

指示器向下、可编辑、悬停

SpinBox 向下指示器可编辑悬停资产

SwipeDelegate背景

SwipeDelegate 背景资产

背景禁用

已禁用的 SwipeDelegate 背景资产

背景已按下

SwipeDelegate 背景按压资产

背景聚焦

刷卡委托背景重点资产

背景悬停

SwipeDelegate 背景悬停资产

Switch指示器

开关指示器资产

指示器禁用

开关指示器禁用资产

指示灯已按下

开关指示灯已按下

指示灯已检查

开关指示器已检查资产

指示灯已检查,已聚焦

已检查开关指示器的重点资产

指示器选中,悬停

已检查悬停资产的开关指示器

指示器选中,按下

开关指示器检查了已按下的资产

指示器集中

开关指示器聚焦资产

指示器悬停

开关指示灯悬停资产

处理

开关手柄资产

句柄禁用

开关手柄禁用资产

把手已按下

开关手柄已按下

SwitchDelegate背景

SwitchDelegate 背景资产

背景禁用

SwitchDelegate 后台禁用资产

背景已按下

SwitchDelegate 背景按下资产

背景聚焦

SwitchDelegate 背景重点资产

背景悬停

SwitchDelegate 背景悬停资产

指示器

SwitchDelegate 指标资产

指示器禁用

SwitchDelegate 指示器禁用资产

指示灯已按下

按下资产 SwitchDelegate 指示器

指示灯已检查

SwitchDelegate 指标已选中资产

指示灯已检查,已聚焦

SwitchDelegate 指示器已选中重点资产

指示器选中,悬停

SwitchDelegate 指示器已选中悬停资产

指示器选中,按下

SwitchDelegate 指示器已选中按下的资产

指示器集中

SwitchDelegate 指标聚焦资产

指示器悬停

SwitchDelegate 指示器悬停资产

处理

SwitchDelegate 处理资产

句柄禁用

SwitchDelegate 处理禁用资产

TabBar背景

TabBar 背景资产

TabButton背景

TabButton 背景资产

背景禁用

禁用 TabButton 背景资产

背景已按下

TabButton 背景已按下资产

背景已选中

TabButton 背景已选中资产

背景悬停

TabButton 背景悬停资产

背景禁用、选中

已选中 TabButton 背景禁用资产

TextArea背景

文本区域背景资产

背景禁用

禁用文本区域背景资产

背景聚焦

文本区域背景重点资产

TextField背景

文本字段背景资产

背景禁用

禁用 TextField 背景资产

背景聚焦

文本字段背景重点资产

ToolBar背景

工具栏背景资产

ToolButton背景

工具按钮背景资产

背景禁用,选中

工具按钮背景已禁用,已选中资产

背景集中

工具按钮背景重点资产

背景已按下

工具按钮背景已按下资产

背景已选中

工具按钮背景已选中资产

背景已检查、有重点

工具按钮背景已选中重点资产

背景选中、悬停

工具按钮背景检查了悬停资产

背景悬停

工具按钮背景悬停资产

ToolSeparator分隔符水平

工具分离器 分离器水平资产

分隔符立式

工具分离器分离器垂直资产

ToolTip背景

工具提示背景资产

1包含一种颜色的 1x1 图像,拉伸后填充控件。

9 补丁图像

Imagine 风格使用9 补丁图像,以便让设计人员控制特定元素在调整大小后的反应。下面是一个 9 补丁图像的示例,表示Button'sbackground ,以及一个放大版本(以便更容易看到 9 补丁线):

显示拉伸线和填充线的按钮背景 9 补丁图像

图片内容宽 44 像素,高 32 像素。每幅 9 补丁图像的每边都需要一条 1 像素粗的线(统称为 "9 补丁线"),因此图像的实际大小为宽 46 像素、高 34 像素。请注意,无论图像的目标 DPI 是多少,9 补丁线的厚度都必须是一个像素。例如,button-background.9.png 和 button-background@2x.9.png 的 9 补丁线都必须是一个像素粗。

9 条补丁线必须为黑色,其余区域必须为透明或白色:

9 个补丁线颜色要求示意图

可拉伸区域

顶部和左侧边缘的 9 条补丁线决定了调整图像大小时哪些部分会被拉伸。

以下是 9 补丁线图像在不同尺寸下被调整为原始尺寸的 1.5 倍的示例:

调整 9 块图像大小以显示可拉伸区域的示例

请注意圆角是如何保持其原始大小的,因为它们在线条范围之外。

填充区域

右边和底边的 9 条填充线决定了控件contentItem 的可用空间大小,这意味着它也可以被视为控制padding 。有关填充的示意图,请参阅Control Layout

下面是更多调整 9 补丁图像大小的示例,但这次演示的是填充 9 补丁线是如何工作的。

调整 9 补丁图像大小以显示填充区域的示例

contentItem 可以根据需要在阴影区域内占用尽可能多的空间。如果不使用填充线,contentItem 将在不超出可拉伸区域的情况下占用所需的空间。

嵌入区域

例如,在某些情况下,控件需要有阴影。但是,如果我们为上面的按钮添加阴影,就会影响其大小,从而给布局和鼠标/触摸输入边界带来问题。

内嵌区域可以解决这个问题,它告诉控件,9 补丁图像的某个区域应位于控件之外:

下阴影 9 个补丁嵌入线示意图

在下图中,虚线代表按钮的可点击区域,以及按钮在布局中所占的空间。阴影由其后面的条纹区域标记:

带阴影的按钮,显示可点击区域和嵌件

导出 9 补丁图像

可以使用各种矢量和位图编辑器来创建适合 Imagine 风格使用的 9 补丁图像。下文将简要介绍每种编辑器的导出过程,最后一节将说明如何确保导出的图像符合 9 补丁格式。

Affinity Designer

请参阅 Affinity 的导出设置文档。

Adobe Illustrator

请参阅 Adobe 的资产导出面板文档。

Adobe Photoshop

请参见 Adobe 的 "从图层生成图像资产 "文档。

Inkscape

Inkscape 9-Patch 导出扩展可用于使用 Inkscape 导出资产。

草图

请参阅 Sketch 的导出文档。

Qt Quick Controls 还为 Sketch 提供了一个插件,可在导出资产后自动修复 9 补丁线的厚度。要安装该文件,请双击该文件。一旦 Sketch 确认已安装 9 补丁导出插件,该插件将在导出图像时自动处理图像。

修复 9 补丁线

以多种 DPI 变体(@2x@3x 等)导出 9 补丁图像时,9 补丁线通常会随图像一起放大。有几种方法可以解决这个问题,但最简单的方法可能是使用ImageMagick 的 mogrify工具。该工具有一个-shave 功能,可用于裁剪图像以减小 9 补丁线的厚度:

mogrify -shave 1x1 -path path/to/images *@2x.9.png
mogrify -shave 2x2 -path path/to/images *@3x.9.png
mogrify -shave 3x3 -path path/to/images *@4x.9.png

普通 DPI 图像(没有@Nx 前缀的图像)不会受到影响,因此只需在用于高 DPI 显示器的图像上运行该命令即可。

动画图片

Imagine 风格支持WebP和 GIF 动画图像格式。

自定义

路径

Imagine 样式允许自定义用于选择图像资产的路径。路径可为任何窗口或项目指定,并以与fonts 相同的方式自动传播到子窗口。在下面的示例中,窗口和所有三个单选按钮都使用深色图像资产(文件位于 "qrc:/themes/dark")。

import QtQuick
import QtQuick.Controls
import QtQuick.Controls.Imagine

ApplicationWindow {
    visible: true

    Imagine.path: "qrc:/themes/dark"

    Column {
        anchors.centerIn: parent

        RadioButton { text: qsTr("Small") }
        RadioButton { text: qsTr("Medium"); checked: true }
        RadioButton { text: qsTr("Large") }
    }
}

Imagine 黑暗主题中的小、中、大单选按钮

除了在 QML 中指定路径外,还可以通过环境变量配置文件指定路径。QML 中指定的属性优先于所有其他方法。

配置文件
变量描述
Path指定包含 Imagine 样式资产的目录路径。如果未指定,则使用内置资产。

例如,指定存储在资源系统中的目录路径:

[Imagine]
Path=:/imagine-assets

指定本地目录的相对路径:

[Imagine]
Path=imagine-assets

注意: 由于技术限制,如果路径是qtquickcontrols2.conf 文件的相对路径,则不应命名为"imagine"

有关配置文件的更多详情,请参阅Qt Quick Controls Configuration File

环境变量
变量说明
QT_QUICK_CONTROLS_IMAGINE_PATH指定包含 Imagine 样式资产的目录路径。如果未指定,则使用内置资产。

例如,指定存储在资源系统中的目录路径:

QT_QUICK_CONTROLS_IMAGINE_PATH=:/imagine-assets

指定本地目录的相对路径:

QT_QUICK_CONTROLS_IMAGINE_PATH=imagine-assets

注意: 由于技术限制,如果路径是qtquickcontrols2.conf 文件的相对路径,则不应命名为"imagine"

QT_QUICK_CONTROLS_IMAGINE_SMOOTH设置为1 可启用 9 补丁图像的平滑缩放。此环境变量在 Qt 6.5 中添加。

有关支持的环境变量的完整列表,请参阅 Qt Quick Controls 中支持的环境变量。

调色板

Imagine 风格支持通过palette 属性和qtquickcontrols2.conf文件自定义调色板。与其他样式一样,Imagine 样式使用的palette roles 具体内容取决于样式。不过,由于控件的大部分视觉外观(例如:背景)都是通过图像资产管理的,因此只有通常用于文本的角色才会产生影响。

字体

可通过font 属性和配置文件设置自定义字体。

依赖关系

必须单独导入 Imagine 样式,才能访问 Imagine 样式特有的属性。需要注意的是,无论是否引用 Imagine 样式,相同的应用程序代码都可以在任何其他样式下运行。只有在使用 Imagine 样式运行应用程序时,Imagine 特有的属性才会生效。

如果 Imagine 样式被导入到始终加载的 QML 文件中,则 Imagine 样式必须与应用程序一起部署,这样才能运行应用程序,而不管应用程序以哪种样式运行。通过使用文件选择器,可以应用特定于样式的调整,而不会对样式产生硬性依赖。

另请参阅 样式Qt Quick 控件

附加属性文档

Imagine.path:string

此附加属性保存图像资产的路径...

Button {
    Imagine.path: "qrc:/themes/dark"
}

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.