QML的缩放和定位



我正在开发一个运行到QQuickWidget的QT5.11.1 QML应用程序。调整大小模式设置为SizeRootObjectToView。因此,每当我调整QMainWindow大小时,我都会看到我的QML根对象也可以扩展。

内部我有一些锚定的图像以填补父母,并按预期进行缩放。相反,我有较小的图像或文本的问题,这些问题应保持相同的相对位置和大小。

我从比率为1:1的绝对位置和大小开始。示例:根项目的大小为1920x1080 px,我必须将其他项目(主要是图像和文本)放在给定的坐标中。

当根更改其大小时,所有元素都应遵循它。我尝试了:

import QtQuick 2.11
import QtQuick.Controls 2.4
import QtGraphicalEffects 1.0
Rectangle {
    id: root
    visible: true
    color: "black"
    property real ratio: root.width / 1920
    readonly property real x_CenterGauge: 502
    readonly property real y_CenterGauge: 489
    Image {
        x: x_CenterGauge * ratio
        y: y_CenterGauge * ratio
        scale: ratio
    }
}

但这是不起作用的,因为root.width属性(和ratio)在我调整窗口大小时不会更改。但是它实际上调整了根元素的大小,因为任何锚定的项目也都会调整大小!我只有在最大化/最小化窗口时才能更改。

我读了这篇文章和这个问题,但我仍然不明白如何处理qml中的修复。

在测试中,它似乎是一个问题通过修改宽度和高度,它可以解决问题

Rectangle {
    id: root
    visible: true
    color: "black"
    property real ratio: root.width / 1920
    readonly property real x_CenterGauge: 202
    readonly property real y_CenterGauge: 489
    Image {
        x: root.x_CenterGauge * root.ratio
        y: root.y_CenterGauge * root.ratio
        width: implicitWidth * root.ratio
        height: implicitHeight * root.ratio
        //scale: ratio
    }
}

相关内容

  • 没有找到相关文章

最新更新