Sur cette page

SignalSpy QML Type

Permet l'introspection de l'émission de signaux. En savoir plus...

Import Statement: import QtTest
Inherits:

Item

Propriétés

Méthodes

Description détaillée

Dans l'exemple suivant, un SignalSpy est installé pour surveiller le signal « clicked » sur un type Button défini par l'utilisateur. Lorsque le signal est émis, la propriété count du spy est incrémentée.

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

Ce type de test convient aux signaux émis de manière synchrone. Pour les signaux asynchrones, la méthode ` wait()` peut être utilisée pour bloquer le test jusqu’à ce que le signal se produise (ou qu’un délai d’expiration soit atteint).

Voir également TestCase et Qt Quick Test.

Documentation sur les propriétés

count : int [read-only]

Cette propriété définit le nombre de fois où la méthode ` signalName ` a été appelée depuis ` target ` depuis le dernier appel à la méthode ` clear()`.

Voir également target, signalName et clear().

signalArguments : list [read-only]

Cette propriété contient une liste des arguments des signaux émis. Chaque émission d'un signal ajoute un élément à la liste, contenant les arguments de ce signal. Lors de la connexion à un nouvel target ou à un nouvel signalName, ou lors de l'appel de la méthode clear(), la propriété signalArguments est réinitialisée et vide.

Voir également signalName et clear().

signalName : string

Cette propriété définit le nom du signal à surveiller sur target.

Voir également target et count.

target : object

Cette propriété définit l'objet cible qui sera utilisé pour détecter les émissions du signal « signalName ».

Voir également « signalName » et « count ».

valid : bool [read-only]

Cette propriété définit l'état actuel de la connexion du signal. Elle prend la valeur « true » lorsque la connexion de l'signalName, de l'target, a été établie avec succès ; dans le cas contraire, elle prend la valeur « false ».

Voir également count, target, signalName et clear().

Documentation de la méthode

clear()

Efface les données de count vers 0 et celles de signalArguments pour les vider. N'affecte pas valid.

Voir également count et wait().

wait(timeout = 5000)

Attend que le signal « signalName » sur « target » soit émis, pendant un délai maximal de timeout millisecondes. Le cas de test échouera si le signal n’est pas émis.

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

Deux scénarios sont possibles : soit le signal a déjà été émis au moment de l'appel de wait(), soit il ne l'a pas encore été. La fonction wait() gère le premier scénario en renvoyant immédiatement une valeur si le signal s'est déjà produit.

La méthode clear() peut être utilisée pour ignorer les informations relatives aux signaux déjà survenus afin de synchroniser wait() avec les futures émissions de signaux.

Voir également ` clear()` et ` 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.