在 x,y 坐标的左侧绘图

Drawing to the left of x,y coordinates

我目前在 Qt 上工作,当我尝试绘制一些东西(对于 e.x 矩形)时给出其 x、y 坐标及其宽度和高度 Qt 开始从其 x 开始绘制矩形, y 坐标向正确的方向,为了演示我在说什么请看下图:

和以下代码:

Rectangle {
    id: rectangle1
    x: 257
    y: 221
    width: 50
    height: 50
    color: "#000000"
}

我想知道我是否可以开始在 x,y 坐标的左侧绘图,这就像给宽度和高度负值绘图一样。请参见下图:

我试过给宽度赋予一个负值,它在设计模式下工作正常,但是当我 运行 或调试我的应用程序时,矩形没有出现,对此有任何想法将不胜感激

绘制距左父区域50px的矩形:

Rectangle {
    id: rectangle1
    x: parent.width - 50 // rectangle start 50px from the left
    y: 221  // similar with y pos: parent.height - 50
    width: 50
    height: 50
    color: "#000000"
}

但是我不确定我是否正确理解了你的问题。

您不能为此目的使用负值,因为 QML 不支持负宽度或负高度。但是您可以使用 Scale 类型来完成此操作:

Rectangle {
    id: rectangle1
    x: 257
    y: 221
    width: 50
    height: 50
    color: "#000000"

    transform: Scale { origin.x: 0; origin.y: 0; xScale: -1}
}

Scale 允许您相对于任意点缩放项目。这里我们缩放项目的 X 轴相对于它的内部点 (0, 0)。