1

Qt 5.4 で構築された複雑な状態エンジン システムを使用しています (カスタム状態エンジン クラスを使用)。

そのコードの一部は、イベント、遷移などのログです。状態エンジンで何が起こっているかを完全に追跡できるように、エンジン/状態オブジェクトが受け取るすべてのイベントをログに記録することは非常に重要です。

ほとんどのイベント タイプでは、ロギングは簡単です。ただし、キューに入れられた接続 (つまり、メタ コール イベント) をログに記録できませんでした。QMetaCallEvent はプライベートなので、できることはあまりありません。しかし、そのような Qt の不可欠な部分が適切に検査できないとは信じがたいです。

キューに入れられた接続 (可能であれば、シグナル名、スロット名、送信者名、受信者名、および引数を含む) をログに記録できる方法はありますか?

4

2 に答える 2

0

イベント フィルタをインストールし、ev->type() == QEvent::MetaCall でイベントをインターセプトします。デバッガーに表示されるすべてのメンバー。

プライベート ヘッダーへのアクセスが必要ですか? .pro ファイルで QT += core-private を使用します。

(tone mode="オリジナルポスター")誰もドキュメントを読まないなんて信じられない(/tone)

于 2015-02-17T22:15:33.663 に答える