QTest::QTouchEventSequence Class
class QTest::QTouchEventSequenceDie Klasse „QTouchEventSequence“ dient dazu, eine Abfolge von Berührungsereignissen zu simulieren. Mehr...
| Header: | #include <qtestsupport_gui.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Test) target_link_libraries(mytarget PRIVATE Qt6::Test) |
| qmake: | QT += testlib |
| Vererbt an: |
Öffentliche Funktionen
| virtual | ~QTouchEventSequence() |
(since 6.12) bool | cancel(bool processEvents = true) |
| virtual bool | commit(bool processEvents = true) |
| QTest::QTouchEventSequence & | move(int touchId, const QPoint &pt, QWindow *window = nullptr) |
| QTest::QTouchEventSequence & | press(int touchId, const QPoint &pt, QWindow *window = nullptr) |
| QTest::QTouchEventSequence & | release(int touchId, const QPoint &pt, QWindow *window = nullptr) |
| virtual QTest::QTouchEventSequence & | stationary(int touchId) |
Ausführliche Beschreibung
Um eine Abfolge von Berührungsereignissen auf einem bestimmten Gerät für ein Fenster oder Widget zu simulieren, rufen Sie ` QTest::touchEvent ` auf, um eine `QTouchEventSequence`-Instanz zu erstellen. Fügen Sie der Abfolge Berührungsereignisse hinzu, indem Sie ` press()`, ` move()`, ` release()` und ` stationary()` aufrufen, und lassen Sie die Instanz aus dem Gültigkeitsbereich laufen, um die Abfolge an das Ereignissystem zu übergeben.
Beispiel:
QTouchDevice *dev = QTest::createTouchDevice();
QWidget widget;
QTest::touchEvent(&widget, dev)
.press(0, QPoint(10, 10));
QTest::touchEvent(&widget, dev)
.stationary(0)
.press(1, QPoint(40, 10));
QTest::touchEvent(&widget, dev)
.move(0, QPoint(12, 12))
.move(1, QPoint(45, 5));
QTest::touchEvent(&widget, dev)
.release(0, QPoint(12, 12))
.release(1, QPoint(45, 5));Dokumentation zu Mitgliedsfunktionen
[virtual noexcept] QTouchEventSequence::~QTouchEventSequence()
Führt diese Abfolge von Touch-Ereignissen durch, sofern „autoCommit“ nicht deaktiviert wurde, und gibt die zugewiesenen Ressourcen frei.
[since 6.12] bool QTouchEventSequence::cancel(bool processEvents = true)
Führt eine Berührungsabbruch-Anweisung für das Gerät der Sequenz aus und gibt zurück, ob diese akzeptiert wurde. Wenn „ processEvents “ auf „ true “ gesetzt ist (Standard), wird anschließend die Ereignisschleife durchlaufen.
Simuliert, dass die Berührungssequenz abgebrochen wurde, beispielsweise durch den Compositor. Alle zwischengespeicherten, aber noch nicht festgeschriebenen Punkte werden verworfen, und da auf einen Abbruch nur ein neuer Tastendruck folgen kann, werden auch gespeicherte Punkte verworfen.
Diese Funktion wurde in Qt 6.12 eingeführt.
[virtual] bool QTouchEventSequence::commit(bool processEvents = true)
Übermittelt dieses Touch-Ereignis an das Ereignissystem und gibt zurück, ob es nach der Übermittlung akzeptiert wurde.
Normalerweise ist es nicht erforderlich, diese Funktion aufzurufen, da sie vom Destruktor aufgerufen wird. Ist jedoch „autoCommit“ deaktiviert, werden die Ereignisse erst durch den expliziten Aufruf dieser Funktion übermittelt. Ein weiterer Grund für den expliziten Aufruf ist die Überprüfung des Rückgabewerts.
In besonderen Fällen kann es in Tests erforderlich sein, die Verarbeitung des Ereignisses zu deaktivieren. Dies kann durch Setzen von „ processEvents “ auf „false“ erreicht werden. Dies führt dazu, dass das Ereignis lediglich in die Warteschlange gestellt wird: Die Ereignisschleife wird nicht gezwungen, es zu verarbeiten.
Gibt zurück, ob das Ereignis nach der Zustellung akzeptiert wurde.
QTest::QTouchEventSequence &QTouchEventSequence::move(int touchId, const QPoint &pt, QWindow *window = nullptr)
Fügt dieser Sequenz ein Bewegungsereignis für den Berührungspunkt touchId an der Position pt hinzu und gibt eine Referenz auf dieses QTouchEventSequence zurück.
Die Position pt wird relativ zu window interpretiert. Ist window ein Nullzeiger, wird pt relativ zu dem Fenster interpretiert, das bei der Instanziierung von QTouchEventSequence angegeben wurde.
Simuliert, dass der Benutzer den durch touchId identifizierten Finger bewegt hat.
QTest::QTouchEventSequence &QTouchEventSequence::press(int touchId, const QPoint &pt, QWindow *window = nullptr)
Fügt dieser Sequenz ein Druckereignis für den Berührungspunkt touchId an der Position pt hinzu und gibt eine Referenz auf diesen QTouchEventSequence zurück.
Die Position pt wird relativ zu window interpretiert. Ist window ein Nullzeiger, wird pt relativ zu dem Fenster interpretiert, das bei der Instanziierung dieses QTouchEventSequence angegeben wurde.
Simuliert, dass der Benutzer den Touchscreen oder das Touchpad mit dem Finger gedrückt hat, der durch ` touchId` identifiziert wird.
QTest::QTouchEventSequence &QTouchEventSequence::release(int touchId, const QPoint &pt, QWindow *window = nullptr)
Fügt dieser Sequenz ein Release-Ereignis für den Touchpoint touchId an der Position pt hinzu und gibt eine Referenz auf diesen QTouchEventSequence zurück.
Die Position „ pt “ wird relativ zu „ window “ interpretiert. Ist „ window “ ein Nullzeiger, wird „ pt “ relativ zu dem Fenster interpretiert, das bei der Instanziierung dieses „ QTouchEventSequence “ angegeben wurde.
Simuliert, dass der Benutzer den durch touchId identifizierten Finger abgehoben hat.
[virtual] QTest::QTouchEventSequence &QTouchEventSequence::stationary(int touchId)
Fügt dieser Sequenz ein stationäres Ereignis für den Touchpoint touchId hinzu und gibt eine Referenz auf dieses QTouchEventSequence zurück.
Simuliert, dass der Benutzer den durch touchId identifizierten Finger nicht bewegt hat.
© 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.