QQuickTest Namespace
Der Namespace „QQuickTest“ enthält alle Funktionen und Makros im Zusammenhang mit „ Qt Quick Test “. Mehr…
| Header: | #include <QtQuickTest> |
Funktionen
| bool | qIsPolishScheduled(const QQuickItem *item) |
(since 6.4) bool | qIsPolishScheduled(const QQuickWindow *window) |
(since 6.4) bool | qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout) |
(since 6.4) bool | qWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout) |
Makros
(since 6.10) | QTRY_VERIFY_ACTIVE_FOCUS(item) |
| QUICK_TEST_MAIN(name) | |
| QUICK_TEST_MAIN_WITH_SETUP(name, QuickTestSetupClass) | |
(since 6.10) | QVERIFY_ACTIVE_FOCUS(item) |
Ausführliche Beschreibung
Informationen zum Schreiben von „ Qt Quick “-Unit-Tests finden Sie in der Einführung zu „ Qt Quick Test “.
Informationen zum Verknüpfen mit der C++-Bibliothek „ Qt Quick Test “ finden Sie unter Qt Quick Test C++ API.
Siehe auch „Ausführen von C++ vor QML-Tests“.
Funktionsdokumentation
bool QQuickTest::qIsPolishScheduled(const QQuickItem *item)
Gibt „ true “ zurück, wenn „ updatePolish()“ seit dem letzten Aufruf von „ polish()“ nicht für „ item “ aufgerufen wurde; andernfalls wird „ false “ zurückgegeben.
Beim Zuweisen von Werten zu Eigenschaften in QML werden Layout-Änderungen, die das Element infolge der Zuweisung vornehmen muss, möglicherweise nicht sofort wirksam, sondern können stattdessen aufgeschoben werden, bis das Element „poliert“ wurde. In diesen Fällen können Sie diese Funktion verwenden, um sicherzustellen, dass das Element „poliert“ wurde, bevor die Ausführung des Tests fortgesetzt wird. Beispiel:
QVERIFY(QQuickTest::qIsPolishScheduled(item));
QVERIFY(QQuickTest::qWaitForItemPolished(item));Ohne den oben genannten Aufruf von ` qIsPolishScheduled() ` könnte der Aufruf von ` qWaitForItemPolished() ` feststellen, dass kein „Polish“-Vorgang geplant war, und daher sofort erfolgreich sein – vorausgesetzt, das Element wurde bereits „poliert“. Diese Funktion macht deutlich, warum ein Element nicht „poliert“ wurde, und ermöglicht es, dass Tests unter solchen Umständen frühzeitig fehlschlagen.
Das QML-Äquivalent dieser Funktion ist ` isPolishScheduled()`.
Siehe auch QQuickItem::polish() und QQuickItem::updatePolish().
[since 6.4] bool QQuickTest::qIsPolishScheduled(const QQuickWindow *window)
Gibt „ true “ zurück, wenn es Elemente gibt, die von diesem Fenster verwaltet werden und für die „ qIsPolishScheduled(item) “ den Wert „ true “ zurückgibt; andernfalls wird „ false “ zurückgegeben.
Wenn beispielsweise ein Element irgendwo innerhalb der Szene möglicherweise poliert ist oder auch nicht, Sie aber warten müssen, falls es poliert ist, können Sie den folgenden Code verwenden:
if (QQuickTest::qIsPolishScheduled(window))
QVERIFY(QQuickTest::qWaitForPolish(window));Das QML-Äquivalent dieser Funktion ist ` isPolishScheduled()`.
Diese Funktion überlädt „ QQuickTest::qIsPolishScheduled()“.
Diese Funktion wurde in Qt 6.4 eingeführt.
Siehe auch ` QQuickItem::polish()`, ` QQuickItem::updatePolish()` und ` QQuickTest::qWaitForPolish()`.
[since 6.4] bool QQuickTest::qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout)
Wartet timeout Millisekunden oder bis updatePolish() auf item aufgerufen wurde.
Gibt „ true “ zurück, wenn „ updatePolish() “ auf „ item “ innerhalb von „ timeout “ Millisekunden aufgerufen wurde, andernfalls wird „ false “ zurückgegeben.
Diese Funktion wurde in Qt 6.4 eingeführt.
Siehe auch QQuickItem::polish(), QQuickItem::updatePolish() und QQuickTest::qIsPolishScheduled().
[since 6.4] bool QQuickTest::qWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout)
Wartet timeout Millisekunden oder so lange, bis qIsPolishScheduled(item) für alle von window verwalteten Elemente den Wert „ false “ zurückgibt.
Gibt „ true “ zurück, wenn „ qIsPolishScheduled(item) “ innerhalb von „ timeout “ Millisekunden für alle Elemente „false“ zurückgibt; andernfalls wird „ false “ zurückgegeben.
Das QML-Äquivalent dieser Funktion ist ` waitForPolish()`.
Diese Funktion wurde in Qt 6.4 eingeführt.
Siehe auch QQuickItem::polish(), QQuickItem::updatePolish() und QQuickTest::qIsPolishScheduled().
Makro-Dokumentation
[since 6.10] QTRY_VERIFY_ACTIVE_FOCUS(item)
Dieses Makro führt dieselbe Überprüfung durch wie „ QVERIFY_ACTIVE_FOCUS “ mit „ item “, jedoch wiederholt, bis entweder die Bedingung wahr wird oder das Zeitlimit (in Millisekunden) erreicht ist. Zwischen den einzelnen Auswertungen werden Ereignisse verarbeitet. Wird das Zeitlimit erreicht, wird im Testprotokoll ein Fehler vermerkt und der Test wird nicht weiter ausgeführt.
Hinweis: Dieses Makro kann nur in einer Testfunktion verwendet werden, die vom Test-Framework aufgerufen wird.
Dieses Makro wurde in Qt 6.10 eingeführt.
QUICK_TEST_MAIN(name)
Richtet den Einstiegspunkt für eine „ Qt Quick Test “-Anwendung ein. Das Argument „ name “ identifiziert diesen Testsatz eindeutig.
#include <QtQuickTest>
QUICK_TEST_MAIN(example)Hinweis: Das Makro geht davon aus, dass sich Ihre Testquellen im aktuellen Verzeichnis befinden, sofern die Umgebungsvariable ` QUICK_TEST_SOURCE_DIR ` nicht gesetzt ist.
Siehe auch „ QUICK_TEST_MAIN_WITH_SETUP()“ und „Ausführen von Qt Quick -Tests“.
QUICK_TEST_MAIN_WITH_SETUP(name, QuickTestSetupClass)
Richtet den Einstiegspunkt für eine „ Qt Quick Test “-Anwendung ein. Das Argument „ name “ identifiziert diesen Testsatz eindeutig.
Dieses Makro ist identisch mit ` QUICK_TEST_MAIN()`, mit dem Unterschied, dass es ein zusätzliches Argument ` QuickTestSetupClass` akzeptiert – den Typ einer von ` QObject` abgeleiteten Klasse, die instanziiert wird. Mit dieser Klasse ist es möglich, zusätzlichen Setup-Code zu definieren, der vor der Ausführung des QML-Tests ausgeführt werden soll.
Hinweis: Das Makro geht davon aus, dass sich Ihre Testquelldateien im aktuellen Verzeichnis befinden, sofern die Umgebungsvariable ` QUICK_TEST_SOURCE_DIR ` nicht gesetzt ist.
Der folgende Codeausschnitt veranschaulicht die Verwendung dieses Makros:
// src_qmltest_qquicktest.cpp
#include <QtQuickTest>
#include <QQmlEngine>
#include <QQmlContext>
#include <QGuiApplication>
class Setup : public QObject
{
Q_OBJECT
public:
Setup() {}
public slots:
void applicationAvailable()
{
// Initialization that only requires the QGuiApplication object to be available
}
void qmlEngineAvailable(QQmlEngine *engine)
{
// Initialization requiring the QQmlEngine to be constructed
engine->rootContext()->setContextProperty("myContextProperty", QVariant(true));
}
void cleanupTestCase()
{
// Implement custom resource cleanup
}
};
QUICK_TEST_MAIN_WITH_SETUP(mytest, Setup)
#include "src_qmltest_qquicktest.moc"Siehe auch „ QUICK_TEST_MAIN()“ und „Ausführen von Qt Quick -Tests“.
[since 6.10] QVERIFY_ACTIVE_FOCUS(item)
Prüft, ob die Klasse „ item “ (die von „ QQuickItem “ abgeleitet sein muss) die Methode „ active focus “ besitzt. Ist dies der Fall, wird die Ausführung fortgesetzt. Andernfalls wird ein Fehler im Testprotokoll vermerkt und der Test wird nicht weiter ausgeführt. Die Fehlermeldung enthält fokusspezifische Informationen, die für die Diagnose der Fehlerursache relevant sind.
Hinweis: Dieses Makro kann nur in einer Testfunktion verwendet werden, die vom Test-Framework aufgerufen wird.
Dieses Makro wurde in Qt 6.10 eingeführt.
© 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.