我正在尝试制作一个简单的图形应用程序,在其中可以动态创建不同的形状(如(矩形,圆形,三角形))以及一条线(从一个点到另一个)。对于前三个,我还没有遇到任何问题。对于rect,我只定义了一个Rectangle组件,并在我的绘图区域的MouseArea的onClicked Handler中使用create组件创建了它。对于三角形,我与画布一起绘制了三角形,并使用create component和onClicked处理函数创建了该组件。我主要通过mouse.x和mouse.y来在需要的地方创建形状。现在,对于Line,我想定义单击鼠标区域时的起点和释放时的终点。一旦发布,我想画线(使用画布)。我该怎么做呢?
答案 0 :(得分:1)
MouseArea
也有一个released
信号。每当您的selectedIndex说“ line”时,将x和y存储在onPressed
处理程序中,并仅使用存储的位置在onReleased
处理程序中创建行
MouseArea {
property var startPoint
onPressed: {
if(selectedShape.currentIndex === 3)
startPoint = Qt.point(mouse.x, mouse.y)
}
onReleased: {
if(selectedShape.currentIndex === 3 && startPoint !== undefined)
{
createLine(startPoint, Qt.point(mouse.x, mouse.y) //your function goes here
}
startPoint = undefined
}
}
PS。不要将代码粘贴为图片!