【问题标题】:QTest: It's possible to test drag&drop?QTest:可以测试拖放吗?
【发布时间】:2012-07-15 02:18:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: qt unit-testing qtestlib


    【解决方案1】:

    我没有运气通过 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多