gpt4 book ai didi

c++ - 在 QML 上下文中处理 Qt C++ 事件

转载 作者:搜寻专家 更新时间:2023-10-31 02:13:31 26 4
gpt4 key购买 nike

C++ API 有 QEvent 以及从它派生的多个其他类(QMouseEventQGestureEvent 等)。另一方面,QML 也有事件。然而,我正在努力寻找一种在 QML 中直接处理 C++ 事件的优雅方式。

通常我所做的是创建一个自定义的QQuickWidget(或类似的包括QQmlEngine),覆盖QWidget::event(QEvent* event) 并在接收到特定的 C++ 事件后,我通过信号将其传播到 QML 插槽,并通过该小部件加载 QML 代码。这看起来工作量很大,我想知道是否有某种 QML 内置事件处理来自 C++ 上下文的事件。

特别是我对在 QML 中处理 QGestureEvent 很感兴趣,但我想适用于此类事件的方法也适用于任何其他类型的事件。

最佳答案

QML 中没有直接支持事件处理,甚至键盘和鼠标都可以通过辅助对象访问。

QEvent 本身不是 QObject 派生的,因此,这同样适用于所有派生事件。这意味着没有元信息,也没有从 QML 使用的简单方法。

由于您对特定类型的事件感兴趣,最简单的方法是为这些类型的事件创建您自己的辅助对象,用 C++ 实现它并通过您可以附加处理程序的信号将其连接到 QML。

关于c++ - 在 QML 上下文中处理 Qt C++ 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41239815/

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