我正在努力让MultiPointTouchArea工作......我在QT上找到了一个非常基本的例子:
http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-multipointtoucharea.html
import QtQuick 2.0
Rectangle {
width: 400; height: 400
MultiPointTouchArea {
anchors.fill: parent
touchPoints: [
TouchPoint { id: point1 },
TouchPoint { id: point2 }
]
}
Rectangle {
width: 30; height: 30
color: "green"
x: point1.x
y: point1.y
}
Rectangle {
width: 30; height: 30
color: "yellow"
x: point2.x
y: point2.y
}
}
但如果我移动鼠标没有任何反应......位置总是x = 0,y = 0.但文档告诉我:“Item :: enabled属性用于启用和禁用触摸处理。禁用时,触摸区域对鼠标/触摸事件变得透明。“因此MultiPointTouchArea未被禁用,因此它应该有效吗?或者我错了吗?
答案 0 :(得分:2)
我在我的Android平板电脑上尝试了你的代码,它运行得很好。第一个手指控件移动绿色矩形,第二个手指移动黄色矩形。我在Qt 5.4(最新截至目前)
您是在平板电脑还是台式电脑上运行此示例?如果您使用普通鼠标在桌面上,则只能在按住鼠标左键的同时移动绿色矩形。触摸需要鼠标按下才能工作。
你到底想要达到什么目的?看起来你真正想要的是一个将hoverEnabled设置为true的MouseArea。
试试这个:
import QtQuick 2.0
Rectangle {
width: 400; height: 400
property point point1;
property point point2;
MouseArea {
anchors.fill: parent
hoverEnabled: true
onPositionChanged: {
if (pressed)
{
parent.point1.x = mouse.x;
parent.point1.y = mouse.y;
}
else
{
parent.point2.x = mouse.x;
parent.point2.y = mouse.y;
}
}
}
Rectangle {
width: 30; height: 30
color: "green"
x: parent.point1.x
y: parent.point1.y
}
Rectangle {
width: 30; height: 30
color: "yellow"
x: parent.point2.x
y: parent.point2.y
}
}