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

选择Smooth 激活平滑采样。平滑采样使用线性插值,而非平滑采样使用最近邻值。由于平滑采样对性能的影响最小,因此默认情况下将其激活。
反锯齿用于使屏幕上的曲线更平滑。选择Antialising 可打开抗锯齿功能。
Baseline offset 的值指定了组件基线在本地坐标中的位置。Text 组件的基线是文本所在的假想线。包含文本的控件通常将其基线设置为文本的基线。对于非文本组件,默认基线偏移量为 0。
管理鼠标和键盘事件
选择Enabled 允许组件接收鼠标和键盘事件。该组件的子组件将继承这一行为,除非您为它们明确设置了这一值。
您可以启用Focus 复选框来指定组件具有活动焦点,启用Focus on tab 复选框来将组件添加到标签焦点链中。标签焦点链遍历组件时,首先访问父组件,然后按定义的顺序访问其子组件。在标签焦点链中的一个组件上按Tab 键,键盘焦点就会移动到链中的下一个组件。按回车键(通常为Shift+Tab)则会将焦点移至前一个组件。
使用图层
Qt Quick 使用专用场景图,然后通过图形 API(如 OpenGL ES、OpenGL、Vulkan、Metal 或 Direct 3D)进行遍历和渲染。使用图形场景图而不是传统的命令式绘制系统,意味着要渲染的场景可以在帧与帧之间保留,并且在渲染开始前就知道要渲染的整套基元。这就为一系列优化开辟了道路,例如批量渲染以尽量减少状态变化和丢弃模糊的基元。
例如,用户界面可能包含一个由十个项目组成的列表,每个项目都有一个背景色、一个图标和一个文本。使用传统的绘制技术,这将导致 30 次绘制调用和类似数量的状态变化。另一方面,场景图可以重新组织要渲染的基元,在一次调用中绘制所有背景,然后绘制所有图标,最后绘制所有文本,从而将绘制调用总数减少到 3 次。
你需要对组件如何渲染有一个基本的了解,才能设置图层属性。Qt Quick 场景图默认渲染器中介绍了渲染。

组件通常会直接渲染到所属窗口中。不过,通过在Layer 部分选择Enabled ,您可以将组件及其整个子树委托给一个屏幕外表面。这样,只有离屏表面(一种纹理)会被绘制到窗口中。更多信息,请参阅Item Layers 。
启用分层后,您可以将组件直接用作纹理,并与您在Effect 字段中选择的组件结合使用。通常情况下,该组件应该是一个指定了源纹理的着色器效果。
为了使组件能正确地将图层的离屏表面传递给效果,Sampler name 字段应设置为纹理的源属性。
需要注意的是,当一个组件的图层启用后,场景图将在 GPU 中分配相当于宽 x 高 x 4 的内存。 在内存有限的配置中,应谨慎使用大图层。此外,使用图层的组件在渲染过程中无法进行批处理。这意味着有许多分层组件的场景可能会出现性能问题。
默认情况下,如果使用场景图渲染器且底层图形 API 支持多采样,则整个窗口都会启用多采样。通过设置Samples 字段中的值,可以为场景的一部分请求多重采样。这样,多重采样只应用于特定的子树,可以显著提高性能。即便如此,无论图层的大小如何,启用多重采样都会产生潜在的高昂成本,因为它会产生与硬件和驱动程序相关的性能和内存成本。如果不支持多采样呈现缓冲区和帧缓冲区混合,该值将被忽略。
Format 字段的值指定纹理的内部 OpenGL 格式。根据 OpenGL 实现的不同,它可能会让你节省一些纹理内存。但是,请谨慎使用RGB 和Alpha 值,因为底层硬件和驱动程序可能不支持它们。
在Texture mirroring 字段中,指定生成的 OpenGL 纹理是否要沿 x 轴或 y 轴翻转镜像。如果自定义着色器直接访问生成的纹理,自定义镜像可能会很有用。如果没有为分层组件指定任何效果,镜像对组件的用户界面表现没有任何影响。
如果选择Smooth ,组件将使用线性插值进行缩放。要使用 mipmap 进行缩放,请选择Mipmap 。mipmap 可改善缩放组件的视觉质量。若要对单个Image 部件进行混合贴图,请在图像属性中选择Mipmap 。
要使用与组件大小不同的纹理,请在Texture size 字段中指定纹理的宽度和高度。
Wrap mode 定义了与纹理相关的 OpenGL 包模式。您可以将纹理夹在边缘,或在水平和垂直方向上重复纹理。请注意,某些 OpenGL ES 2 实现不支持Repeat 非二倍幂纹理的换行模式。
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.