gpt4 book ai didi

c++ - 如何将 TouchPoints 列表从 QML 传递到 C++?

转载 作者:太空狗 更新时间:2023-10-29 23:10:51 26 4
gpt4 key购买 nike

我正在使用 MultiPointTouchArea 并希望在触发 onPressed、onReleased 或 onUpdated 时将接触点列表传递给 C++ 端。

这是我尝试过但没有成功的方法:

QML:

MultiPointTouchArea  {
minimumTouchPoints: 1
maximumTouchPoints: 2

touchPoints: [
TouchPoint { id: touch1 },
TouchPoint { id: touch2 }
]

onPressed: {
myCPlusPlusClass.onPressed(touchPoints)
}
}

C++:

void myCPlusPlusClass::onPressed(const QList<QTouchEvent::TouchPoint>& list) 
{
// Do something
}

我已将 QListQTouchEvent::TouchPoint 注册为元类型,如下所示:

qRegisterMetaType<QList<QTouchEvent::TouchPoint>>("QList<QTouchEvent::TouchPoint>");

我没有收到任何错误,但是列表只是 nullptr 或 C++ 端的类似内容。

我的第二个最佳选择是单独传递接触点(而不是在列表中)。

这可以解决吗?如果不是,我有什么选择可以将所有信息从 TouchPoint 传递到 C++ 端?

最佳答案

我认为一种方法是将有关组件状态的易于解析的“报告”传递给 C++。现在不知道 TouchPoint(s) 中有哪些属性,但大概将它们转储到文本似乎很容易实现(可能使用 Array.join)。然后从 C++ 解析回来并使用该数据。

关于c++ - 如何将 TouchPoints 列表从 QML 传递到 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54457541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com