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