加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Qt3d输入c

发布时间:2020-12-16 06:51:56 所属栏目:百科 来源:网络整理
导读:是否可以在c中的qt3d中处理鼠标输入?我可以使用qt3d repo中的样本使用qml https://github.com/qtproject/qt3d/tree/5.6/examples/qt3d/mouseinput-qml 然而,没有相当于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版本?

解决方法

虽然这是一个老问题,但如果有人需要,我会提供答案.

首先,总有一个C到QML的等价物.这是因为QML只是实例化C类.

在这种情况下,根据QML documentation,实例化类QMouseController.

查看您提供的repo中的其余代码,您必须将QMouseController创建为QEntity的子级(或者不要,我认为在将其设置为组件时,父级也将相应地设置)并添加它作为所述实体的一个组成部分.

QML代码中的此属性MouseInput mouseInput仅将其作为属性添加到实体(我假设).您可能还可以省略将其添加为属性,而是为其分配一个ID(在MouseInput块内)并使用此ID将其添加到实体,即

Entity {
    id: sphere1

    MouseInput {
        id: mouseInput

        controller: mouseController
    }

    components: [mouseInput]
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读