このページでは

SignalSpy QML Type

シグナルの発火に関するイントロスペクションを有効にします。詳細...

Import Statement: import QtTest
Inherits:

Item

プロパティ

方法

詳細な説明

以下の例では、ユーザー定義のButton型における「clicked」シグナルを監視するために、SignalSpyが設置されています。シグナルが発火すると、スパイのcount プロパティの値が増加します。

Button {
    id: button
    SignalSpy {
        id: spy
        target: button
        signalName: "clicked"
    }
    TestCase {
        name: "ButtonClick"
        function test_click() {
            compare(spy.count, 0)
            button.clicked();
            compare(spy.count, 1)
        }
    }
}

上記のテスト手法は、同期的に発火するシグナルに適しています。非同期シグナルの場合は、wait() メソッドを使用して、シグナルが発生する(またはタイムアウトが切れる)までテストをブロックすることができます。

「 TestCase 」および「Qt Quick 」テストも参照してください 。

プロパティのドキュメント

count : int [read-only]

このプロパティは、clear() が最後に呼び出されてから、target からsignalName が発行された回数を定義します。

target 、signalName 、およびclear()も参照してください 。

signalArguments : list [read-only]

このプロパティには、発信されたシグナルの引数のリストが保持されます。シグナルが発信されるたびに、そのシグナルの引数を含む項目が1つリストに追加されます。新しいtarget やsignalName に接続する場合、あるいはclear()メソッドを呼び出す場合、signalArgumentsは空にリセットされます。

signalName およびclear()も参照してください 。

signalName : string

このプロパティは、target で受信を待機するシグナルの名前を定義します。

「 target 」および「count 」も参照してください 。

target : object

このプロパティは、signalName シグナルの発火をリッスンするために使用されるターゲットオブジェクトを定義します。

「 signalName 」および「count 」も参照してください 。

valid : bool [read-only]

このプロパティは、現在の信号接続状態を表します。target のsignalName が正常に接続されている場合はtrueとなり、そうでない場合はfalseとなります。

関連項目: count 、target 、signalName 、およびclear()。

メソッドのドキュメント

clear()

count の内容を0 に、signalArguments の内容を空にクリアします。valid には影響しません。

count およびwait()も参照してください 。

wait(timeout = 5000)

target に対するシグナル `signalName ` が発せられるのを、最大timeout ミリ秒間待ちます。シグナルが発せられない場合、このテストケースは失敗します。

SignalSpy {
    id: spy
    target: button
    signalName: "clicked"
}

function test_async_click() {
    ...
    // do something that will cause clicked() to be emitted
    ...
    spy.wait()
    compare(spy.count, 1)
}

2つのシナリオが考えられます。wait()が呼び出された時点でシグナルがすでに発生している場合と、まだ発生していない場合です。wait()関数は、シグナルがすでに発生している場合、直ちに値を返して最初のシナリオに対応します。

clear() メソッドを使用すると、すでに発生したシグナルに関する情報を破棄し、wait() を将来のシグナル発生と同期させることができます。

clear() およびTestCase::tryCompare()も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.