Wxpython-drag-and-drop
提供:Dev Guides
wxPython-ドラッグアンドドロップ
- ドラッグ&ドロップ*の提供は、ユーザーにとって非常に直感的です。 ユーザーがオブジェクトをマウスでドラッグして別のウィンドウにドロップするだけで、あるウィンドウから別のウィンドウにオブジェクトをコピーまたは移動できる多くのデスクトップアプリケーションで見られます。
ドラッグアンドドロップ操作には、次の手順が含まれます-
- ドロップターゲットを宣言する
- データオブジェクトを作成する
- wx.DropSourceを作成する
- ドラッグ操作を実行
- ドロップをキャンセルまたは受け入れる
wxPythonでは、2つの事前定義されたドロップターゲットがあります-
- wx.TextDropTarget
- wx.FileDropTarget
多くのwxPythonウィジェットは、ドラッグアンドドロップアクティビティをサポートしています。 ソースコントロールではドラッグを有効にする必要がありますが、ターゲットコントロールはドラッグを受け入れる(または拒否する)位置になければなりません。
ユーザーがドラッグしているソースデータは、ターゲットオブジェクトに配置されます。 ターゲットオブジェクトのOnDropText()はデータを消費します。 必要に応じて、ソースオブジェクトのデータを削除できます。
例
次の例では、2つのListCrlオブジェクトがBox Sizerに水平に配置されています。 左側のリストには、languages []データが入力されています。 ドラッグのソースとして指定されています。 右側の1つがターゲットです。
2番目のリストコントロールは空で、TextDropTargetクラスのオブジェクトの引数です。
OnDropText()メソッドは、ターゲットリストコントロールにソースデータを追加します。
ドラッグ操作は、イベントバインダーによって初期化されます。
OnDragInit()関数は、ドラッグデータをターゲットに配置し、ソースから削除します。
完全なコードは次のとおりです-
上記のコードは、次の出力を生成します-