QTest:可以测试拖放吗?

时间:2012-07-16 08:47:35

标签: qt unit-testing qtestlib

我尝试用简单的sequince测试拖放:mousePress + mouseMove + mouseRelease。但它不起作用。

我调查qtest源并发现,通过主调度程序processEvent()测试移动事件。此外,我在qt bug-tracker中发现了一些错误:12

所以,我认为,在最新稳定的Qt4下测试拖放是不可能的。这有什么成功的故事吗?

1 个答案:

答案 0 :(得分: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)