Qt3d用c ++输入
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt3d用c ++输入相关的知识,希望对你有一定的参考价值。
是否可以在c ++中处理qt3d中的鼠标输入?我可以使用qt3d repo中的样本使用qml
https://github.com/qtproject/qt3d/tree/5.6/examples/qt3d/mouseinput-qml
然而,没有c ++等价物。
尽管经过多次尝试(甚至尝试使用附加到各种小部件的事件过滤器捕获输入),我仍然无法在c ++中捕获鼠标事件。对于此版本的qt(5.6),qt3d的c ++鼠标输入api是完整的,还是应该等到5.7版?
答案
虽然这是一个老问题,但如果有人需要,我会提供答案。
首先,总是存在与QML相当的C ++。这是因为QML只是实例化C ++类。
在这种情况下,根据QML documentation,类QMouseController被实例化。
看看你提供的repo中的其余代码,你必须创建QMouseController
作为QEntity
的子代(或者不要,我认为当它设置为一个组件时,父代也会相应地设置)并添加它作为所述实体的一个组成部分。
QML代码中的property MouseInput mouseInput
只将它作为属性添加到实体中(我假设)。您可能还可以省略将其添加为属性,而是为其分配一个ID(在MouseInput
块内)并使用此ID将其添加到实体,即
Entity {
id: sphere1
MouseInput {
id: mouseInput
controller: mouseController
}
components: [mouseInput]
}
以上是关于Qt3d用c ++输入的主要内容,如果未能解决你的问题,请参考以下文章