2012-07-16 1 views
4

Я пытаюсь протестировать перетащить & капля с простым sequince: mousePress + mouseMove + mouseRelease. Но это не работает.QTest: Можно проверить перетаскивание?

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

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

ответ

0

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

создать mime_data, что-то вроде:

mime_data = widget_model.mimeData(indexes) 

или

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) 
Смежные вопросы