设置组件的高级属性
在“Properties ”视图的“Advanced ”和“Layer ”部分中,您可以管理从“Item ”组件继承的、主要由应用程序开发人员使用的组件的高级属性。

选中“Smooth ”以启用平滑采样。平滑采样采用线性插值,而非平滑采样则采用最近邻插值。由于平滑采样对性能的影响微乎其微,因此默认处于启用状态。
抗锯齿用于使屏幕上的曲线更加平滑。选择“Antialising ”以启用抗锯齿。
Baseline offset 的值指定了组件基线在本地坐标系中的位置。Text 组件的基线是文本所在的假想直线。包含文本的控件通常将其基线设置为文本的基线。对于非文本组件,默认使用基线偏移量 0。
管理鼠标和键盘事件
选中“Enabled ”复选框,可允许组件接收鼠标和键盘事件。除非您为子组件显式设置此值,否则该组件的子组件将继承此行为。
您可以勾选“Focus ”复选框,指定该组件具有活动焦点;勾选“Focus on tab ”复选框,将该组件添加到Tab焦点链中。 Tab 焦点链遍历组件时,会首先访问父组件,然后按定义顺序访问其子组件。在 Tab 焦点链中的某个组件上按下Tab 键,会将键盘焦点移至链中的下一个组件;按下后退 Tab 键(通常为Shift+Tab)则会将焦点移至上一个组件。
使用图层
Qt Quick 利用了一个专用的场景图,随后通过 OpenGL ES、OpenGL、Vulkan、Metal 或 Direct 3D 等图形 API 对该场景图进行遍历和渲染。 使用场景图进行图形渲染,而非传统的命令式绘制系统,意味着待渲染的场景可以在帧与帧之间保留,且在渲染开始前就已知待渲染的完整基元集。这为多种优化提供了可能,例如通过批量渲染来最小化状态变化,以及舍弃被遮挡的基元。
例如,一个用户界面可能包含一个由十个项目组成的列表,每个项目都有背景色、图标和文本。如果使用传统的绘制技术,这将导致 30 次绘制调用和数量相当的状态变更。 而场景图则可以重新组织待渲染的基元,使所有背景在一次调用中绘制完毕,随后绘制所有图标,最后绘制所有文本,从而将总绘制调用次数减少到仅 3 次。此类批处理和状态变更的减少可以在某些硬件上显著提升性能。
要设置图层属性,您需要对组件的渲染原理有基本了解。渲染相关内容详见Qt Quick Scene Graph Default Renderer。

组件通常会直接渲染到其所属的窗口中。但是,通过在“Layer ”部分中选择“Enabled ”,您可以将该组件及其整个子树委托给一个离屏表面。随后,只有该离屏表面(即纹理)会被渲染到窗口中。有关更多信息,请参阅Item Layers 。
启用分层功能后,您可以将该组件直接作为纹理使用,并结合在“Effect ”字段中选定的组件。通常,该组件应为指定了源纹理的着色器效果。
为了使组件能够正确地将图层的离屏表面传递给效果,应将“Sampler name ”字段设置为纹理的源属性。
请注意,当组件的图层被启用时,场景图将在 GPU 中分配大小为宽度 × 高度 × 4 的内存。在内存受限的配置中,应谨慎使用大型图层。此外,使用图层的组件在渲染过程中无法进行批处理。这意味着包含大量图层组件的场景可能会出现性能问题。
默认情况下,如果正在使用场景图渲染器且底层图形 API 支持,则整个窗口都会启用多采样。 通过设置Samples 字段的值,您可以为场景的一部分请求多采样。这样,多采样仅应用于特定的子树,从而可能带来显著的性能提升。 即便如此,启用多采样仍可能消耗大量资源,无论图层大小如何,因为这会带来取决于硬件和驱动程序的性能及内存开销。如果不支持多采样渲染缓冲区和帧缓冲区复制,该值将被静默忽略。
Format 字段的值指定了纹理的内部OpenGL格式。根据OpenGL实现的不同,这可能会帮助您节省一些纹理内存。但是,请谨慎使用RGB 和Alpha 值,因为底层硬件和驱动程序可能不支持它们。
在“Texture mirroring ”字段中,指定生成的 OpenGL 纹理是否应沿 x 轴或 y 轴翻转以实现镜像。如果生成的纹理由自定义着色器直接访问,自定义镜像功能会非常有用。如果未为分层组件指定任何效果,则镜像操作不会影响该组件在用户界面中的显示效果。
如果选择了“Smooth ”,组件将使用线性插值进行缩放。若要使用 Mipmap 进行下采样,请选择“Mipmap ”。Mipmap 技术可提高下采样后组件的视觉质量。对于单个“Image ”组件的 Mipmap 处理,请改在图像属性中选择“Mipmap ”。
若要使用尺寸与组件不同的纹理,请在“Texture size ”字段中指定纹理的宽度和高度。
“Wrap mode ”字段定义了与纹理相关的 OpenGL 卷绕模式。您可以将纹理限制在边缘,或使其在水平和垂直方向上重复。请注意,某些 OpenGL ES 2 实现不支持对非 2 的幂大小的纹理使用“Repeat ”卷绕模式。
另请参阅 《如何设计Qt Quick 用户界面》、《 Qt Quick 用户界面设计》以及《 设计Qt Quick 用户界面》。
Copyright © The Qt Company Ltd. and other contributors. 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.