我需要获取Qt Widget(Qt C++)中触发的所有事件的列表,如实用程序,它可以捕获所有事件或将要调用的某个函数,并将事件详细信息传递给函数每次事件被解雇。Qt中的跟踪事件
有人可以告诉我该怎么做,或者是否有任何免费的工具可用于此目的?
我需要获取Qt Widget(Qt C++)中触发的所有事件的列表,如实用程序,它可以捕获所有事件或将要调用的某个函数,并将事件详细信息传递给函数每次事件被解雇。Qt中的跟踪事件
有人可以告诉我该怎么做,或者是否有任何免费的工具可用于此目的?
QObject::installEventFilter是你想要的。你可以看到所有的事件到一个对象。
如果您需要看到的一切所有事件,你可以在安装的QApplication事件过滤器,请参阅文档QCoreApplication::notify:
上QCoreApplication安装一个事件过滤器::实例()。这样的事件过滤器能够处理所有小部件的所有事件,所以它的功能与重新实现notify()一样强大,如 。此外,它可能有多个应用程序全局事件过滤器。全球 事件过滤器甚至可以查看禁用小部件的鼠标事件。请注意, 应用程序事件过滤器仅针对居住在 主线程中的对象调用。
如果您从QWidget
派生的类(我们称之为RecordingWidget
),你可以重新实现它的event()
功能在你喜欢的任何方式来记录(也许保留日志中的RecordingWidget
静态成员),然后继续将活动传递给QWidget
的默认event
功能:
bool RecordingWidget::event(QEvent *event)
{
// Record stuff
...
// Send the event through QWidget's default event implementation
return QWidget::event(event);
}