通过 QWidget 类在 QML 中的事件处理程序

Posted

技术标签:

【中文标题】通过 QWidget 类在 QML 中的事件处理程序【英文标题】:event handler in QML through QWidget class 【发布时间】:2010-11-19 10:17:18 【问题描述】:

我在触摸笔记本上处理 QML 事件时遇到了一些问题,onPressed 事件、onPressAndHold 事件不起作用,没有调试消息。我尝试通过 Qt 类处理事件,但我失败了(使用 QDeclarativeView 连接 QML 和 Qt)。

如何编写全局事件处理程序,在笔记本上注册 QML 触摸事件。

谢谢。

【问题讨论】:

【参考方案1】:

您可以使用 C++ 中的事件过滤器。例如。如果您在 QApplication 子类中重新实现 QApplication::notify ,您应该能够挂钩任何东西。检查您的应用程序是否适用于其他(基于鼠标的)平台可能很有用。 QML 的 MouseArea 使用鼠标事件而不是触摸。如果您的平台仅使用触摸事件,并且不伪造鼠标事件 - 您可能需要查看手势区域研究 QML 插件; http://qt.gitorious.org/qt-labs/qml-gesturearea

【讨论】:

以上是关于通过 QWidget 类在 QML 中的事件处理程序的主要内容,如果未能解决你的问题,请参考以下文章

QML QWidget 容器

C++生成QML代码与QML里面集成QWidget

如何拦截 Qt Quick qml 事件?

Qt5。在 QML 中嵌入 QWidget 对象

如何在 QWidget 中插入 QML 视图

Qt--Qt中的事件处理