QML:我可以从它的中心而不是它的角绘制一个矩形吗?
QML: Can I draw a rectangle from its center, not from its corner?
如果我想在 qml 中可视化一个点,我可以这样做:
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.0
ApplicationWindow{
width: 1024
height: 256
visible: true
ColumnLayout {
anchors.fill: parent
Rectangle {
x: 10
y: 10
width: 5
height: 5
color: "white"
}
}
}
然而,矩形将从左上角向下绘制。有没有办法画出以x,y为中心的矩形?
谢谢
未按原样使用 Rectangle
,但您可以制作自己的项目。使用 transform 属性 允许 x
和 y
引用矩形的中心。
MyRectangle.qml
:
import QtQuick 2.0
Rectangle {
id: rect
transform: Translate {
x: -rect.width / 2
y: -rect.height / 2
}
}
然后您可以像这样使用它:
import QtQuick 2.0
import QtQuick.Window 2.0
Window {
width: 200
height: 200
visible: true
MyRectangle {
x: 50
y: 50
width: 50
height: 50
color: "darkorange"
}
}
如果我想在 qml 中可视化一个点,我可以这样做:
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.0
ApplicationWindow{
width: 1024
height: 256
visible: true
ColumnLayout {
anchors.fill: parent
Rectangle {
x: 10
y: 10
width: 5
height: 5
color: "white"
}
}
}
然而,矩形将从左上角向下绘制。有没有办法画出以x,y为中心的矩形?
谢谢
未按原样使用 Rectangle
,但您可以制作自己的项目。使用 transform 属性 允许 x
和 y
引用矩形的中心。
MyRectangle.qml
:
import QtQuick 2.0
Rectangle {
id: rect
transform: Translate {
x: -rect.width / 2
y: -rect.height / 2
}
}
然后您可以像这样使用它:
import QtQuick 2.0
import QtQuick.Window 2.0
Window {
width: 200
height: 200
visible: true
MyRectangle {
x: 50
y: 50
width: 50
height: 50
color: "darkorange"
}
}