SignalSpy QML Type
Ermöglicht die Introspektion der Signalabgabe. Mehr...
| Import Statement: | import QtTest |
| Inherits: |
Eigenschaften
- count : int
- signalArguments : list
- signalName : string
- target : object
- valid : bool
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.
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.
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.