1

Qt ウィジェット (Qt C++) で発生したすべてのイベントのリストを取得する必要があります。これは、すべてのイベントまたは呼び出される関数と、イベントが発生するたびに関数に渡されるイベントの詳細をキャプチャできるユーティリティのようなものです。

誰かがこれを行う方法を教えてもらえますか、またはこの目的で利用できる無料のユーティリティはありますか?

4

2 に答える 2

2

QObject::installEventFilterはあなたが望むものです。オブジェクトに入ってくるすべてのイベントを見ることができます。

すべてのすべてのイベントを表示する必要がある場合は、QApplicationにイベントフィルターをインストールできます。QCoreApplication:: notify:のドキュメントを参照してください。

QCoreApplication :: instance()にイベントフィルターをインストールします。このようなイベントフィルターは、すべてのウィジェットのすべてのイベントを処理できるため、notify()を再実装するのと同じくらい強力です。さらに、複数のアプリケーショングローバルイベントフィルターを使用することもできます。グローバルイベントフィルターは、無効になっているウィジェットのマウスイベントも表示します。アプリケーションイベントフィルターは、メインスレッドに存在するオブジェクトに対してのみ呼び出されることに注意してください。

于 2013-01-10T23:38:59.997 に答える
0

から派生したクラスを作成する場合QWidget(それを呼び出しましょうRecordingWidget)、その関数を再実装してevent()、好きな方法で記録し(おそらく、の静的メンバーにログを保持します)、イベントをのデフォルト関数RecordingWidgetに渡し続けることができます。QWidgetevent

bool RecordingWidget::event(QEvent *event)
{
    // Record stuff
    ...

    // Send the event through QWidget's default event implementation
    return QWidget::event(event);
}
于 2013-01-10T23:40:39.097 に答える