Sur cette page

SignalSpy QML Type

Permet l'introspection de l'émission de signaux. Plus d'informations...

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 de bouton défini par l'utilisateur. Lorsque le signal est émis, la propriété count de l'espion est augmenté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)
        }
    }
}

Le type de test ci-dessus 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'attente expire).

Voir également TestCase et Qt Quick Test.

Property Documentation

count : int [read-only]

Cette propriété définit le nombre de fois où signalName a été émis par target depuis le dernier appel à clear().

Voir aussi target, signalName, et clear().

signalArguments : list [read-only]

Cette propriété contient une liste d'arguments de signaux émis. Chaque émission du signal ajoutera un élément à la liste, contenant les arguments du signal. Lors de la connexion à un nouveau target ou un nouveau signalName, ou lors de l'appel à la méthode clear(), les arguments du signal seront réinitialisés à vide.

Voir aussi signalName et clear().

signalName : string

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

Voir également target et count.

target : object

Cette propriété définit l'objet cible qui sera utilisé pour écouter 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 au signal. Elle sera vraie si le signal signalName du signal target est connecté avec succès, sinon elle sera fausse.

Voir aussi count, target, signalName, et clear().

Documentation de la méthode

clear()

Efface count au profit de 0 et signalArguments au profit de empty. N'affecte pas valid.

Voir aussi count et wait().

wait(timeout = 5000)

Attend que le signal signalName sur target soit émis, pendant une durée maximale 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)
}

Il existe deux scénarios possibles : le signal a déjà été émis lorsque wait() est appelé, ou le signal n'a pas encore été émis. La fonction wait() gère le premier scénario en retournant immédiatement si le signal a déjà été émis.

La méthode clear() peut être utilisée pour ignorer les informations relatives aux signaux déjà émis 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.