我有一个带有 QTreeView 和 QGraphicsSceneView 的 GUI。
树视图使用的模型支持拖动事件,图形场景支持拖放事件。
我想用 QTest: mousePress
、mouseMove
等模拟用户操作mouseRelease
。
我写了这段代码:
item_rect = self.main_wnd.tree_view.visualRect(constant_index)
QtTest.QTest.mouseMove(self.main_wnd.tree_view.viewport(), item_rect.center(), 300)
QtTest.QTest.mousePress(self.main_wnd.tree_view.viewport(), QtCore.Qt.LeftButton, QtCore.Qt.KeyboardModifiers(),
item_rect.center(), 300)
QtTest.QTest.mouseMove(self.main_wnd._scene_views[None].viewport(), QtCore.QPoint(), 300)
QtTest.QTest.mouseRelease(self.main_wnd.tree_view.viewport(), QtCore.Qt.LeftButton, QtCore.Qt.KeyboardModifiers(),
constant_rect.center(), 300)
在这里,我的鼠标真的移动到了树项目 rect,选择了它——然后移动到场景的中心,没有任何拖放。
你能告诉我,我该如何解决它?