9

イベントによってはかなりの数になると想像できますが、同時に、これはデバッグの最良の方法であり、興味深い教訓になると思います。

なぜそれが必要なのですか?に基づいたカスタム クラスを使用していますが、同じウィンドウでベースをQWidget取り外しても展開されません。QDockWidgetこのドック ウィジェットの接続が解除されたときにどのようなシグナルが発せられるかを知ることは、カスタム クラスでどのメソッドを上書きする必要があるかを選択するのに役立ちます。

つまり、ドキュメントから考えられるすべてのシグナルを確認するのではなく、アプリケーションで何らかのアクションを実行したときにどのシグナルが発せられるかを確認するだけです。

4

5 に答える 5

10

これは、パブリック API では不可能です。

ただし、コードを QTestLib ベースの単体テストに入れると、単体テストを実行して-vs、発行されたすべてのシグナルを出力できます。

于 2010-01-15T22:30:22.013 に答える
7

QSignalSpyクラスを見てみたいと思うかもしれません。スパイしたい信号を手動で接続する必要があると思います。

于 2010-01-15T14:17:05.860 に答える
2

これはQtでは不可能だと思います。あなたはできる

  • QMetaObject::method と QMetaMethod::methodType を使用して、クラスのすべてのシグナルを一覧表示します。
  • 自分のスロットの 1 つをこれらすべての信号に接続します。
  • QObject::sender を使用して、誰がスロットを呼び出したかを確認します。

しかし、私はこの後立ち往生しています。送信者以外に、スロットがどのように呼び出されたかについての情報を取得できるとは思いません。

于 2010-01-15T14:24:39.713 に答える
0

シグナルスパイをチェックしてください。QT ライブラリとシグナル/スロットのスパイについての優れた洞察を得ました。

于 2010-11-03T11:12:56.213 に答える