Qt Quick 重要概念 - 定位
在 QML 中的可视项可以通过多种方式定位。其中最重要的定位相关概念是锚点,这是一种相对定位形式,其中项目可以通过将某些边界之间锚定(或连接)到彼此。
手动定位
项目可以手动定位。如果用户界面是静态的,手动定位提供了最有效的定位形式。
在任何用户界面中,视觉类型在任意时间点的屏幕坐标中都有特定的位置。虽然流畅的动画和动态的用户界面是 Qt Quick 的主要关注点,但静态定位的用户界面仍然是一个可行的选项。更重要的是,如果这些类型的位置不发生变化,通常手动指定位置比使用第 3 节中记录的更动态的定位方法更高效。
在 Qt Quick 中,每个视觉对象都位于 Qt Quick 视觉画布提供的坐标系内。正如该文档所述,视觉对象的 x 和 y 坐标相对于其视觉父对象,左上角坐标为(0,0)。
因此,以下示例将显示两个手动定位的矩形
示例代码 | 结果布局 |
---|---|
使用绑定进行定位
项目也可以通过将其与其在视觉画布中位置相关的属性绑定到绑定表达式来定位。这种类型的定位是最动态的,但与此方式定位项目相关联的一些性能开销。
视觉对象的位置和尺寸也可以通过属性绑定设置。这种方法的优点是值将根据绑定依赖项的变化自动更新。例如,一个矩形的宽度可能取决于旁边矩形的宽度。
虽然绑定提供了创建动态布局的非常灵活和直观的方式,但应注意的是,它们与一些性能开销相关,并且尽可能,应该首选纯净的 Anchor 布局。
锚点
锚点允许一个项目通过将一个或多个项的锚点(边界)连接到另一个项目的锚点来放置,要么是相邻的,要么是在内部。即使其中一个项目的尺寸或位置发生变化,这些锚点也会保留,从而实现高度动态的用户界面。
可以将视觉对象视为具有各种锚点(或者说更准确地说,是锚线)。其他项目可以锚定到这些点上,这意味着任何对象发生变化时,与之锚定的其他对象会自动调整以保持锚定。
Qt Quick 将锚作为顶级概念提供。有关锚定位的详细信息和信息,请参阅有关 使用锚定位对象位置 的文档。
需要注意的是,基于锚的布局通常比基于绑定的布局性能更好,前提是布局体裁径清晰。一个“清晰”的锚布局是指仅使用锚点(并使用对象嵌套)来确定位置的布局,而一个“玷污”的锚布局是指既使用锚定也使用绑定(无论是在位置相关的 [x,y] 属性上还是在尺寸相关的 [width,height] 属性上)来确定位置的布局。
定位器
Qt Quick 还提供了一些内置的定位器项目。对于许多用例而言,最佳定位器是简单的网格、行或列,Qt Quick 提供的项目以尽可能有效的方式在上述布局中定位子项。有关使用预定义定位器的更多信息,请参阅有关 项目定位器类型 的文档。
布局
从 Qt 5.1 开始,可以使用 Qt Quick 布局 模块将 Qt Quick 项目排列在用户界面中。与定位器不同,Qt Quick Layouts 中的类型在声明性界面中管理项的位置和大小。它们非常适合可调整大小的用户界面。
从右到左支持
语言文本书写的方向性通常对用户界面的视觉类型应该如何定位有很大影响。Qt Quick 通过预定布局以及从右到左文本布局来支持从右到左的类型定位。
请参阅有关 Qt Quick 中的从右到左支持 的文档以获取关于此主题的详细信息。
© 2024 Qt 公司有限公司。包含在此处的文档贡献是各自所有者的版权。提供的文档根据 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 的条款发放。Qt 以及相应的标志是芬兰的 Qt 公司及其在全世界任何国家的商标。所有其他商标均为各自所有者的财产。