5

我尝试使用简单的序列来测试拖放:mousePress + mouseMove + mouseRelease。但这是行不通的。

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

所以,我认为,在最新的稳定 Qt4 下测试拖放是不可能的。有这方面的成功案例吗?

4

1 回答 1

0

我没有运气通过 QTest 鼠标功能模拟拖放,digia 说 他们没有将该功能添加到 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)
于 2013-07-28T23:06:37.900 回答