0

私はPyQtプログラムに取り組んでおり、ある種の「ツールバー」にいくつかのオブジェクト、たとえば形状を含めることができるようにしたいと考えています。ユーザーがこれらの図形のいずれかのインスタンスをクリックしてツールバーからメインキャンバス(QGraphicsView)にドラッグできるようにしたいと思います。

ツールバーには、QAbstractListModelを使用して入力できるQListViewを使用することを考えていました。ただし、QListViewに必要な形状のアイコンのみを保持させる方法がわかりません...次に、オブジェクトアイコンをメインキャンバスにドラッグ可能にする方法がわかりません。何か案は?

4

1 に答える 1

1

この質問に既存の方向性を持つ特定のコード例が含まれている場合は、より具体的にコメントできますが、ここにいくつかの一般的なポイントがあります。

  • QListViewデータは、ドラッグアンドドロップの問題に特に関連している必要はないため、QListWidget、QListView +モデル、../のようにデータを入力できます。
  • 重要な側面は、QListXウィジェットにドラッグメソッドを設定して、QDragに適切なQMimeData設定することです。これは、データをドロップサイトに転送する重要な部分です。受信者が利用できる画像またはデータへの参照を送信させることができます。
  • グラフィックビューでドロップイベントを設定して、mimeタイプを受信して​​確認します。画像を送信しているとしましょう。あなたはそれを受け取り、あなたのシーンにピックスマップアイテムを追加することができます。または、IDなどの内部参照を辞書に送信している可能性があります。ルックアップして、データを好きな形でシーンに追加することができます。

一般的なQtドラッグアンドドロップのドキュメントを参照してください。彼らはほとんどあなたが望むものです。

于 2012-12-28T06:50:44.097 に答える