Тип QML SignalSpy
Включает возможность интроспекции выдачи сигналов. Подробнее...
| Заявление об импорте: | import . |
| С момента: | Qt 4.8 |
| Наследует: |
Свойства
- count : int
- signalArguments : список
- signalName : строка
- target : var
- valid : bool
Методы
Подробное описание
В следующем примере установлен 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 : var
Это свойство определяет целевой объект, который будет использоваться для отслеживания выдачи сигнала signalName.
См. также signalName и count.
[только для чтения] valid : bool
Это свойство определяет текущий статус подключения сигнала. Оно будет истинным, когда signalName объекта target успешно подключен, в противном случае оно будет ложным.
См. также count, target, signalName и clear().
Документация по методам
clear()
Сбрасывает count до 0, сбрасывает valid до ложного значения и очищает signalArguments до пустого значения.
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