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 ++输入的主要内容,如果未能解决你的问题,请参考以下文章

C代码和python代码:用二维数组实现矩阵的转置

Qt3d用c ++输入

用C语言怎么输入为数组赋值,求代码

求C语言源代码

用c语言写二叉树,源代码。

C语言,怎么用for 循环给数组赋值 ? 说的简单详细点, 谢谢了