Spec-Zone.ru › Qt 5.13

Тип QML SignalSpy

Включает возможность интроспекции выдачи сигналов. Подробнее...

Заявление об импорте: import .
С момента: Qt 4.8
Наследует:

Item

  • Список всех членов, включая унаследованные

Свойства

  • count : int
  • signalArguments : список
  • signalName : строка
  • target : var
  • valid : bool

Методы

  • clear()
  • wait(timeout)

Подробное описание

В следующем примере установлен SignalSpy для наблюдения за сигналом "clicked" в типе пользовательской кнопки. При вызове сигнала свойство count шпиона увеличится.

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

Вышеупомянутый стиль теста подходит для сигналов, которые генерируются синхронно. Для асинхронных сигналов можно использовать метод wait() для блокировки теста до момента появления сигнала (или истечения таймаута).

См. также TestCase и Qt Quick Test.

Документация по свойствам

[только для чтения] count : int

Это свойство определяет количество раз, когда signalName был выдан из target с момента последнего вызова clear().

См. также target, signalName и clear().

[только для чтения] signalArguments : list

Это свойство содержит список аргументов выданных сигналов. Каждый выпуск сигнала добавит один элемент в список, содержащий аргументы сигнала. При подключении к новому target или новому signalName или вызове метода clear(), signalArguments будет сброшен на пустое значение.

См. также signalName и clear().

signalName : строка

Это свойство определяет имя сигнала в target, за которым нужно следить.

См. также target и count.

target : var

Это свойство определяет целевой объект, который будет использоваться для отслеживания выдачи сигнала signalName.

См. также signalName и count.

[только для чтения] valid : bool

Это свойство определяет текущий статус подключения сигнала. Оно будет истинным, когда signalName объекта target успешно подключен, в противном случае оно будет ложным.

См. также count, target, signalName и clear().

Документация по методам

clear()

Сбрасывает count до 0, сбрасывает valid до ложного значения и очищает signalArguments до пустого значения.

См. также count и wait().

wait(timeout = 5000)

Ожидает, пока сигнал signalName на target не будет выдан в течение timeout миллисекунд. Тест завершится неудачей, если сигнал не будет выдан.

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

Существует два возможных сценария: сигнал уже был выдан в момент вызова wait(), или сигнал еще не был выдан. Функция wait() обрабатывает первый сценарий, сразу возвращаясь, если сигнал уже произошел.

Метод clear() может быть использован для удаления информации о сигналах, которые уже произошли, для синхронизации wait() с будущими выдачами сигналов.

См. также clear() и TestCase::tryCompare().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qml-signalspy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API