Auf dieser Seite

SignalSpy QML Type

Ermöglicht die Introspektion der Signalausgabe. Mehr...

Import Statement: import QtTest
Inherits:

Item

Eigenschaften

Methoden

Ausführliche Beschreibung

Im folgenden Beispiel wird ein SignalSpy installiert, um das Signal „clicked“ eines benutzerdefinierten Button-Typs zu überwachen. Wenn das Signal ausgelöst wird, wird der Wert der Eigenschaft „ count “ des Spys erhöht.

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)
        }
    }
}

Die oben beschriebene Testmethode eignet sich für Signale, die synchron ausgelöst werden. Bei asynchronen Signalen kann die Methode ` wait()` verwendet werden, um den Test so lange zu blockieren, bis das Signal auftritt (oder ein Timeout abläuft).

Siehe auch „ TestCase “ und Qt Quick Test.

Dokumentation zur Eigenschaft

count : int [read-only]

Diese Eigenschaft gibt an, wie oft „ signalName “ von „ target “ seit dem letzten Aufruf von „ clear()“ ausgegeben wurde.

Siehe auch „ target“ , „ signalName “ und „ clear()“.

signalArguments : list [read-only]

Diese Eigenschaft enthält eine Liste der Argumente der ausgesendeten Signale. Bei jeder Aussendung des Signals wird der Liste ein Element angehängt, das die Argumente des Signals enthält. Beim Verbinden mit einem neuen „ target “ oder einem neuen „ signalName “ oder beim Aufruf der Methode „ clear()“ wird die Eigenschaft „signalArguments“ auf leer zurückgesetzt.

Siehe auch „ signalName “ und „ clear()“.

signalName : string

Diese Eigenschaft legt den Namen des Signals fest, auf das unter target abgehört werden soll.

Siehe auch „ target “ und „ count “.

target : object

Diese Eigenschaft definiert das Zielobjekt, das zum Abhören von Emissionen des Signals „ signalName “ verwendet wird.

Siehe auch „ signalName “ und „ count “.

valid : bool [read-only]

Diese Eigenschaft gibt den aktuellen Status der Signalverbindung an. Sie ist „true“, wenn die Verbindung zwischen dem „ signalName “ und dem „ target “ erfolgreich hergestellt wurde; andernfalls ist sie „false“.

Siehe auch „ count“ , „ target “, „ signalName “ und „ clear()“.

Methodendokumentation

clear()

Löscht die Einträge unter „ count “ in „ 0 “ und unter „ signalArguments “ vollständig. Hat keine Auswirkungen auf „ valid “.

Siehe auch count und wait().

wait(timeout = 5000)

Wartet darauf, dass das Signal „ signalName “ auf „ target “ ausgelöst wird, und zwar bis zu timeout Millisekunden lang. Der Testfall schlägt fehl, wenn das Signal nicht ausgelöst wird.

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)
}

Es gibt zwei mögliche Szenarien: Entweder wurde das Signal bereits ausgelöst, als wait() aufgerufen wurde, oder das Signal wurde noch nicht ausgelöst. Die Funktion wait() behandelt das erste Szenario, indem sie sofort zurückkehrt, wenn das Signal bereits aufgetreten ist.

Die Methode „ clear()“ kann verwendet werden, um Informationen über bereits aufgetretene Signale zu verwerfen und so „wait()“ mit zukünftigen Signalauslösungen zu synchronisieren.

Siehe auch ` clear()` und ` 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.