Auf dieser Seite

SignalSpy QML Type

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

Import Statement: import QtTest
Inherits:

Item

Eigenschaften

Methoden

Detaillierte Beschreibung

Im folgenden Beispiel wird ein SignalSpy installiert, der das Signal "angeklickt" auf einem benutzerdefinierten Button-Typ überwacht. Wenn das Signal ausgelöst wird, wird die Eigenschaft count des Spions 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 obige Art des Tests eignet sich für Signale, die synchron ausgegeben werden. Bei asynchronen Signalen kann die Methode wait() verwendet werden, um den Test zu blockieren, bis das Signal auftritt (oder ein Timeout abläuft).

Siehe auch TestCase und Qt Quick Test.

Eigenschaft Dokumentation

count : int [read-only]

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

Siehe auch target, signalName, und clear().

signalArguments : list [read-only]

Diese Eigenschaft enthält eine Liste von Signalargumenten, die gesendet werden. Bei jeder Aussendung des Signals wird ein Element an die Liste angehängt, das die Argumente des Signals enthält. Wenn eine Verbindung zu einem neuen target oder neuen signalName hergestellt wird oder die Methode clear() aufgerufen wird, wird signalArguments auf leer zurückgesetzt.

Siehe auch signalName und clear().

signalName : string

Diese Eigenschaft definiert den Namen des Signals auf target, nach dem zu suchen ist.

Siehe auch target und count.

target : object

Diese Eigenschaft legt das Zielobjekt fest, das zum Abhören des signalName Signals verwendet wird.

Siehe auch signalName und count.

valid : bool [read-only]

Diese Eigenschaft definiert den aktuellen Status der Signalverbindung. Sie ist wahr, wenn die signalName der target erfolgreich verbunden ist, andernfalls ist sie falsch.

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

Dokumentation der Methode

clear()

Löscht count auf 0 und signalArguments auf leer. Wirkt sich nicht auf valid aus.

Siehe auch count und wait().

wait(timeout = 5000)

Wartet darauf, dass das Signal signalName auf target gesendet wird, bis zu timeout Millisekunden lang. Der Testfall schlägt fehl, wenn das Signal nicht ausgegeben 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: Das Signal wurde bereits ausgesendet, als wait() aufgerufen wurde, oder das Signal wurde noch nicht ausgesendet. 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, um wait() mit zukünftigen Signalemissionen 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.