本页内容

想象风格

“Imagine”风格基于可配置的图像资源。更多...

导入语句: import QtQuick.Controls.Imagine
自: Qt 5.10

关联属性

详细说明

“Imagine”样式基于图像资源。该样式自带一组默认图像,但您可以通过提供一个遵循预定义命名规范的图像目录来轻松更换这些图像。

Imagine 风格的控件图库

采用默认图片的“Imagine”样式

若要运行采用 Imagine 样式的应用程序,请参阅《Qt Quick Controls 》中的“使用样式”部分。

文件名

图像文件的命名遵循以下规则:

<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”样式的旋钮目前尚不支持 Qt 6.6 中引入的 `startAngle ` 和 `endAngle ` 属性,而是使用固定的背景图像。

资源示例

下表列出了所有控件的资源示例(摘自默认的“Imagine”样式资源)。由于并非所有元素都需要资源,因此该列表并非详尽无遗,但可作为您创建自有资源时的参考指南。

这些资产所导出的模板可作为Sketch 项目获取。

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

ApplicationWindow 背景资源

参见脚注 1
叠加层

ApplicationWindow 覆盖资源

参见脚注 1
叠加模态

ApplicationWindow 叠加式模态窗口资源

参见脚注 1
Button背景

按钮背景资源

背景已禁用

按钮背景已禁用资源

背景聚焦

按钮背景聚焦资源

背景按下的

按下状态的按钮资源

背景带格纹的

已检查的按钮背景资源

背景已选中,已禁用

已勾选的按钮背景为禁用状态的资源

背景已选中,获得焦点

带背景、已勾选、处于焦点状态的按钮资源

背景已选中,悬停时

带背景、已勾选、悬停效果的按钮素材

背景高亮显示

按钮背景高亮资源

背景高亮显示,禁用

按钮背景高亮显示的已禁用资源

背景高亮显示,焦点所在

按钮背景突出显示当前选中的资源

背景高亮显示,鼠标悬停时

悬停时背景高亮的按钮资源

背景高亮、按下时

按钮背景高亮显示已点击的资源

背景高亮显示,已选中

按钮背景高亮显示的已选中资源

背景悬停时

悬停时带有背景的按钮资源

背景扁平化

按钮背景平面素材

背景平坦,禁用

按钮背景为纯色且处于禁用状态的资源

背景平滑,悬停

带背景的扁平化悬停按钮素材

背景平滑,按下时

按钮背景平压素材

背景纯色、格纹

带平纹格子背景的按钮素材

CheckBox指示器

复选框指示器资源

指示器已禁用

复选框标记:已禁用资产

指示器已按下

复选框指示器已勾选的资产

指示灯已选中

复选框标记为已选中的资产

指示灯已选中、已按下

复选框指示器:已选中、已点击的资产

指示器已选中,悬停

复选框指示器:已选中、悬停时的状态

指示符已选中、获得焦点

复选框指示器:已选中且处于焦点状态的资产

指示符部分选中

复选框标记为部分勾选的资产

指示灯部分,已选中,已按下

复选框指示器显示资产已被部分勾选

指示器部分、已选中、聚焦

复选框指示器显示已部分选中且处于焦点状态的资产

指示器部分显示、已选中、悬停

复选框指示器显示为部分勾选状态(鼠标悬停时)

指示符获得焦点

复选框指示器所选资产

指示符悬停

复选框指示器悬停在资产上

CheckDelegate背景

检查Delegate背景资源

背景已禁用

检查Delegate后台已禁用的资源

背景已按

检查Delegate背景中被按下的资源

背景聚焦

检查Delegate后台聚焦资源

背景悬停时

检查Delegate背景悬停资源

指示器

CheckDelegate 指标资产

指示器已禁用

CheckDelegate 指标已禁用该资产

指示器已按下

CheckDelegate 指标选中的资产

指示灯已选中

CheckDelegate 指标已选中资产

指示灯已选中,已按下

CheckDelegate 指标:已选中且被点击的资产

指示符已选中,焦点

CheckDelegate 指标已选中当前选中的资产

指示符已选中,悬停

CheckDelegate 指标:已勾选的悬停资产

指示符获得焦点

CheckDelegate 指标关注的资产

指示符悬停

CheckDelegate 指标悬停在资产上

指示器部分选中

CheckDelegate 指标:部分已核查资产

指示灯部分,已选中,已按下

CheckDelegate 指标:部分已选中且被点击的资产

指示灯部分选中,已选中,聚焦

CheckDelegate 指标:部分已选中且处于焦点状态的资产

指示器部分显示、已选中、悬停

CheckDelegate 指标:部分勾选且悬停的资产

指示器悬停

CheckDelegate 指标悬停在资产上

ComboBox背景

下拉列表背景资源

背景已禁用

下拉列表(ComboBox)背景禁用资源

背景聚焦

ComboBox 背景聚焦资源

背景悬停

下拉列表悬停背景资源

背景按下时

下拉列表(ComboBox)按下的背景素材

背景打开

ComboBox 背景开放资源

background可编辑

下拉列表(ComboBox)背景可编辑资源

背景可编辑,处于焦点状态

下拉列表框背景、可编辑、获得焦点状态的资源

背景可编辑,禁用

下拉列表背景、可编辑、禁用状态的资源

指示器

ComboBox 指标资产

指示器禁用

下拉列表中已禁用的资产

指示器可编辑

下拉列表指标可编辑资产

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

下拉列表(ComboBox)指标可编辑的禁用资产

指示器可编辑,镜像

ComboBox 指示器 可编辑 镜像资产

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

下拉列表指示器、可编辑、镜像、禁用、资产

弹出窗口

ComboBox 弹出窗口资源

DelayButton背景

DelayButton 背景资源

背景已禁用

DelayButton 背景禁用资源

背景禁用,已选中

DelayButton 背景 禁用 已选中 资源

背景获得焦点时

DelayButton 背景聚焦资源

背景被按下

延迟按钮背景按下状态资源

背景已选中

DelayButton 带背景的已检查资源

背景已选中、获得焦点

延迟按钮 背景 已选中 聚焦 资源

背景已选中,悬停时

延迟按钮的背景、勾选状态、悬停状态资源

背景悬停时

DelayButton 悬停背景资源

进度

DelayButton 进度资源

进度禁用

DelayButton 进度条已禁用资源

遮罩

DelayButton 遮罩资源

Dial背景

表盘背景素材

背景已禁用

已禁用的表盘背景资源

背景聚焦

表盘背景聚焦素材

控件

拨号柄资产

控件已禁用

已停用资产的拨号手柄

控件获得焦点

以拨号柄为中心的资产

控件获得焦点,被按下

拨号手柄聚焦按压资产

控件已聚焦,悬停

拨号手柄聚焦悬停资产

控件已按下

拨号柄按压资产

控件悬停

拨号手柄悬停在资产上

Dialog背景

对话背景素材

叠加层

对话覆盖资源

参见脚注 1
叠加模态

对话框覆盖式模态框资源

参见脚注 1
DialogButtonBoxbackground

DialogButtonBox 背景资源

Drawerbackgroundleft

抽屉背景左侧资源

background右侧

右侧抽屉背景资源

背景顶部

抽屉背景顶部资源

背景底部

抽屉底部背景资源

叠加层

抽屉覆盖层资源

参见脚注 1
叠加层模态

抽屉式覆盖模态组件

参见脚注 1
Framebackground

帧背景资源

GroupBoxbackground

GroupBox 背景资源

标题

GroupBox 标题资源

ItemDelegatebackground

ItemDelegate 背景资源

背景已禁用

ItemDelegate 背景禁用资源

背景已按

ItemDelegate 背景按下资源

背景获得焦点

ItemDelegate 背景聚焦资源

背景悬停

ItemDelegate 背景悬停资源

背景高亮

ItemDelegate 背景高亮资源

Menu背景

菜单背景素材

MenuItem背景

MenuItem 背景资源

背景突出显示

菜单项背景高亮资源

箭头

MenuItem 箭头资源

箭头镜像

MenuItem 箭头镜像资源

箭头已禁用

MenuItem 箭头禁用资源

箭头镜像、禁用

菜单项箭头镜像禁用资源

指示器

MenuItem 指示器资源

指示器已禁用

MenuItem 指示器已禁用资源

指示灯被按下

菜单项指示器被点击的资源

指示器已选中

MenuItem 标记为已选中的资源

指示器已选中,已按下

菜单项、指示器、已选中、已点击、资源

指示符已选中,处于焦点状态

菜单项、指示器、已选中、获得焦点、资源

指示符已选中,悬停

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

指示符获得焦点

MenuItem 指示器聚焦的资源

指示符悬停

菜单项指示器悬停在资产上

MenuSeparator分隔线

菜单分隔符资源

Page背景

页面背景素材

参见脚注 1
PageIndicator委托

PageIndicator 委托资源

委托已禁用

PageIndicator 委托已禁用的资源

代表代表已停用,当前

PageIndicator 委托禁用了当前资产

代表已按

PageIndicator 委托的按下事件

委托人当前

PageIndicator 委托当前资产

Pane背景

面板背景资源

Popup背景

弹出窗口背景资源

参见脚注 1
叠加层

弹出覆盖层资源

参见脚注 1
叠加层模态

弹出覆盖式模态窗口资源

ProgressBar背景

进度条背景素材

进度

ProgressBar 进度条资源

遮罩

进度条蒙版资源

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 控件悬停时的资源

控件已按

RangeSlider 控件被按下事件

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 背景聚焦资源

背景悬停

SwipeDelegate 背景悬停资源

Switch指示器

切换指标资产

指示器已禁用

将资产标记为已停用

指示器已按下

已按下的开关指示器资产

指示灯已选中

将资产标记为已检查

指示灯已选中,焦点在该选项上

已检查“切换”指示器,已选中目标资产

指示符已选中,悬停

切换指示器:已检查、悬停中的资产

指示器已选中、已点击

开关指示灯显示已检查、已按下的资产

指示符获得焦点

切换指标聚焦资产

指示符悬停

切换指示器悬停在资产上

控件

开关手柄资产

控件禁用

将资产标记为“已停用”

处理按下

按下开关手柄的资产

SwitchDelegate背景

SwitchDelegate 背景资源

背景已禁用

将背景为禁用的资源设为SwitchDelegate

背景已按

SwitchDelegate 背景按下资源

背景聚焦

切换委托对象的后台聚焦资源

背景悬停

切换Delegate背景悬停资源

指示器

SwitchDelegate 指标资产

指示器已禁用

SwitchDelegate 指标已禁用该资产

指示器已按下

SwitchDelegate 指标触发的资产

指示灯已选中

已勾选“SwitchDelegate”指标的资产

指示灯已选中,处于焦点状态

SwitchDelegate 指标已选中当前选中的资产

指示符已选中、悬停

SwitchDelegate 指标:已选中、悬停的资产

指示符已选中,已按下

SwitchDelegate 指标已选中被按下的资产

指示符获得焦点

SwitchDelegate 指标关注的资产

指示器悬停

SwitchDelegate 指标悬停在资产上

控件

SwitchDelegate 处理资源

控件禁用

SwitchDelegate 处理已禁用的资源

TabBar背景

TabBar 背景资源

TabButton背景

TabButton 背景资源

背景已禁用

TabButton 背景禁用资源

背景已按

TabButton 按下背景资源

背景带格纹的

TabButton 背景已选中资源

背景悬停时

TabButton 悬停背景素材

背景禁用,选中

TabButton 背景、禁用、选中 资源

TextArea背景

TextArea 背景素材

背景已禁用

TextArea 背景禁用资源

背景聚焦

TextArea 背景聚焦素材

TextField背景

TextField 背景资源

背景已禁用

TextField 背景禁用资源

背景聚焦

TextField 获得焦点时的背景资源

ToolBar背景

工具栏背景资源

ToolButton背景

ToolButton 背景资源

背景已禁用,已选中

ToolButton 背景、禁用、选中 资源

背景获得焦点

ToolButton 背景聚焦资源

背景按下的

ToolButton 背景按下状态资源

背景带方格的

ToolButton 带背景的已选中资源

背景已选中、处于焦点状态

工具按钮、背景、已选中、聚焦、资源

背景已选中,悬停时

工具按钮的背景、选中状态、悬停状态资源

背景悬停时

ToolButton 悬停背景资源

ToolSeparator分隔线水平

ToolSeparator 分隔符 水平分隔符

分隔符垂直

ToolSeparator 分隔符 垂直资产

ToolTip背景

工具提示背景资源

1一张1x1的单色图像,被拉伸以填满控件。

9-Patch 图像

“Imagine”样式使用9-Patch图像,以便让设计师能够控制特定元素在调整大小时的响应方式。以下是一个9-Patch图像的示例,它表示Button 的background ,旁边是其放大版本(以便更清楚地看到9-Patch分隔线):

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

该图像的内容宽 44 像素,高 32 像素。每个 9-patch 图像都需要在每边周围添加一条 1 像素宽的线(统称为“9-patch 线”),因此图像的实际尺寸变为宽 46 像素、高 34 像素。 请注意,无论图像的目标 DPI 是多少,9-patch 线条的宽度都必须为 1 像素。例如,button-background.9.png 和 button-background@2x.9.png 的 9-patch 线条都必须为 1 像素宽。

9-patch 边框必须为黑色,其余区域必须为透明或白色:

显示9-patch线条颜色要求的示意图

可拉伸区域

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

以下是9-patch图像按不同比例调整为原尺寸1.5倍时的示例:

9-patch 图像调整大小后显示可拉伸区域的示例

请注意,圆角部分保持了原始大小,因为它们位于这些线条的范围之外。

填充区域

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

下面是更多关于9-patch图像调整大小的示例,但这次将演示填充9-patch线是如何起作用的。

调整大小后的9-patch图像示例,显示了填充区域

contentItem 可以在阴影区域内占据所需的空间。如果省略填充线,contentItem 将占据所需空间,但不会超出可拉伸区域。

内嵌区域

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

内边距区域通过告知控件,9-patch 图像的特定区域应位于控件外部,从而解决了这一问题:

显示9-patch阴影内嵌线的示意图

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

带有投影的按钮,显示可点击区域和内边距

导出 9-Patch 图像

可以使用各种矢量和位图编辑器来创建适用于 Imagine 样式的 9-Patch 图像。以下各节简要介绍了每种编辑器的导出过程,最后一节则说明了如何确保导出的图像符合 9-Patch 规范。

Affinity Designer

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

Adobe Illustrator

请参阅 Adobe 的“资源导出”面板文档。

Adobe Photoshop

请参阅 Adobe 的“从图层生成图像资源”文档。

Inkscape

可使用Inkscape 9-Patch 导出扩展来通过 Inkscape 导出资源。

Sketch

请参阅 Sketch的“导出”文档。

Qt Quick Controls 还提供了一个 Sketch插件,可在资源导出后自动修正 9-patch 线的粗细。要安装此文件,请双击它。一旦 Sketch 确认 9-patch 导出插件已安装,该插件将在导出图像时自动进行处理。

修复 9-Patch 线条

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

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 前缀的图像)不受此影响,因此只需对 intended for high DPI displays 的图像运行该命令即可。

动画图像

“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 配置文件》。

环境变量
变量描述
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-patch 图片的平滑缩放功能。此环境变量自 Qt 6.5 起新增。

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

调色板

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

字体

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

依赖关系

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

如果将 Imagine 样式导入到一个始终加载的 QML 文件中,则必须将 Imagine 样式与应用程序一同部署,这样无论应用程序使用哪种样式运行,都能正常运行。通过使用文件选择器,可以在不与样式建立硬依赖关系的情况下应用特定于样式的调整。

另请参阅 样式设置Qt Quick Controls

附加属性文档

Imagine.path:字符串

此附加属性保存了图像资源的路径……

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.