5

単純なシーケンスでドラッグ アンド ドロップをテストしようとしています: mousePress + mouseMove + mouseRelease。しかし、それは仕事ではありません。

qtest ソースを調査したところ、メイン ディスパッチャ processEvent() を介して移動イベントがテストされていることがわかりました。また、qt bug-tracker でいくつかのバグを見つけました: 12

そのため、最新の安定した Qt4 でドラッグ アンド ドロップをテストすることはできないと思います。これで成功した人はいますか?

4

1 に答える 1

0

私は QTest のマウス機能を使ってドラッグ アンド ドロップをシミュレートすること できませんでした。上記のリンクで提案されている方法と同様の方法でドラッグ/ドロップ テストを実装しました。

次のような 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 に答える