QTest: Можно ли протестировать перетаскивание?

Я пытаюсь протестировать перетаскивание с помощью простой последовательности: mousePress + mouseMove + mouseRelease. Но это не работа.

Я исследую источник qtest и обнаружил, что событие перемещения проверяется через главный диспетчер processEvent(). Также я нашел несколько ошибок в трекере ошибок qt: 1, 2

Итак, я думаю, что невозможно протестировать перетаскивание под последней стабильной версией Qt4. У кого-нибудь есть история успеха с этим?


person Aleksey Bakin    schedule 16.07.2012    source источник


Ответы (1)


Мне не удалось симулировать перетаскивание с помощью функций мыши QTest, и digia говорит они не добавляют эту функциональность в QT4. Я реализовал тестирование перетаскивания с помощью метода, аналогичного предложенному в приведенной выше ссылке:

создайте свои mime_data, например:

mime_data = widget_model.mimeData(indexes)

or

mime_data = QMimeData()
mime_data.setText(widget.text())

затем используйте такую ​​функцию, чтобы удалить данные:

def dropOnto(self, widget, mime_data):
    action = Qt.CopyAction|Qt.MoveAction
    pt = widget.rect().center()
    drag_drop = QDropEvent(pt, action, mime_data, Qt.LeftButton, Qt.NoModifier)
    drag_drop.acceptProposedAction()
    widget.dropEvent(drag_drop)
person taynaron    schedule 28.07.2013