PyQt の QTreeView で QAbstractItemModel を使用する必要があります。
dropMimeData メソッドで、ソース行を削除したい (特定の MIME_TYPE の場合)。ソースの行と parentIndex を取得するにはどうすればよいですか? または、他の方法でそれを行う必要がありますか。
def dropMimeData(self, mimedata, action, row, column, parentIndex):
PyQt の QTreeView で QAbstractItemModel を使用する必要があります。
dropMimeData メソッドで、ソース行を削除したい (特定の MIME_TYPE の場合)。ソースの行と parentIndex を取得するにはどうすればよいですか? または、他の方法でそれを行う必要がありますか。
def dropMimeData(self, mimedata, action, row, column, parentIndex):
私のコメントが長すぎたので、情報を使って今すぐ回答を始めることにしました。
QAbstractItemModel は、データをどこから調達するか、それらを項目として表現する方法など、既存のもののいずれにも適合しないカスタマイズされた方法でデータをモデリングする必要がある場合に存在する基本クラスです。多くのメソッドを実装する必要があるため、すぐに使用できる状態ではありません。やむを得ない理由がない限り、このクラスから始めるべきではありません。
単純にドラッグ アンド ドロップを実行し、基本的なアイテムを使用する必要がある場合は、QStandardItemModel を使用する準備ができている必要があります。QStandardItems を作成し、モデルに入力するだけです。ドラッグ アンド ドロップの場合、モデルをサブクラス化し、必要に応じて適切な drag*Event および drop*Event メソッドを実装するだけです。
QStandardItemModel + QTreeView を使用すると、すべて同じモデルを使用し、同時に異なる視覚化を行う複数のビューを持つことができます。しかし、独立したデータの 2 つの異なるセットを保持したいとおっしゃいましたが、Qt は初めてなので、2 つの QTreeWidget のみを使用することを強くお勧めします。QTreeWidget は、ビューとモデルの包括的なパッケージです。これで、今のところ、はるかに使いやすくなります。
QTreeWidget を使用して、それらをサブクラス化し、QTreeView の場合と同様に必要なドラッグ アンド ドロップ イベントを実装しますが、モデルを個別に心配する必要はありません。
QTreeWidget でのドラッグ アンド ドロップに関する投稿へのリンクは次のとおりです
: http://www.qtcentre.org/threads/5910-QTreeWidget-Drag-and-drop
mimeData を定義する QTreeWidgetItem のサブクラス。