質問

wxPython でのドラッグ アンド ドロップには少し当惑しています (ただし、この質問は他の GUI フレームワークでのドラッグ アンド ドロップにも関係するかもしれません)。このフレームワークは、現在のマウス位置がドラッグされているものをドロップするのに有効な場所であるかどうかをシステムに通知できるようにするいくつかのコールバック (OnEnter と OnDragOver) を提供します。これらのメソッドから、wx.DragNone、wx.DragCopy などを返すことができます。私を困惑させているのは、これらのメソッド内から GetData を呼び出すことができないことです。これは、ユーザーがドラッグしているデータを調べることができないことを意味します。データが表示されない場合、ユーザーがここにドロップしてもよいかどうかをどうやって判断すればよいでしょうか?

役に立ちましたか?

解決

解決策の 1 つは、有用性が限られたハックですが、ドラッグが開始されたときに、ドラッグされたデータをグローバル参照または静的参照のどこかに保存することです。このようにして、OnEnter ハンドラーと OnDragOver ハンドラーで、ドラッグされているデータへの参照を取得できます。もちろん、これは同じアプリケーション (実際にはアプリケーションの同じインスタンス) 内でドラッグする場合にのみ役立ちます。

他のヒント

ドラッグされたデータを確認する方法はありません OnEnter そして OnDragOver メソッド。

私が見つけた唯一の解決策は、ドラッグされた項目をインスタンス変数に保存し、これらのメソッド内で読み取れるようにすることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top