我正在开发一个qt5.11.1qml应用程序,它运行在
QQuickWidget
. 调整大小模式设置为
SizeRootObjectToView
. 因此,每当我调整
QMainWindow
我也看到了我的qml根对象。
在内部,我有一些图像锚定以填充父对象,它们按预期缩放。相反,我对较小的图像或文本有问题,它们应该保持相同的相对位置和大小。
当比率为1:1时,我从绝对位置和大小开始。示例:根项的大小为1920x1080px,我必须将其他项(主要是图像和文本)放置到给定的坐标。
当根更改其大小时,所有元素都应跟随它。我试过这个:
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
)当我调整窗口大小时不会改变。但它实际上调整了根元素的大小,因为任何锚定的项也将调整大小!只有当窗口最大化/最小化时,我才能得到更改。
我读
this article
和
this question
,但我仍然不明白如何在qml中处理大小调整。