これを解決するために私を助けてください....私はQListView
左側にとQWidget
反対側にあります。でQListView
私はを使用していくつかのアイテムを追加しましQStandardItem
た。QListView
今、私はアイテムを反対側にドラッグアンドドロップしたいと思いますQWidget
、そして私はまた同じことをしなければなりませんQWidget
。QListView
を使用して、アイテムをそれ自体の中にQListView
ドラッグアンドドロップできます
listView.setAcceptDrops(true);
listView.setDragEnabled(true);
listView.setDragDropMode(QAbstractItemView::InternalMove);
これは、QListView内だけで正常に機能しています。QListViewアイテムを他のウィジェットにドラッグアンドドロップしたい。これどうやってするの?私は次のようなイベントを処理する必要があることを知っています
void dropEvent(QDropEvent *);
void dragMoveEvent(QDragMoveEvent *);
void dragEnterEvent(QDragEnterEvent *);
void mousePressEvent(QMouseEvent *);
こんな感じでやってみました
void Example::dragMoveEvent(QDragMoveEvent *e)
{
// The event needs to be accepted here
e->accept();
}
void Example::dragEnterEvent(QDragEnterEvent *e)
{
// Set the drop action to be the proposed action.
e->acceptProposedAction();
}
void Example::dropEvent(QDropEvent *e)
{
qDebug("Items Dropped");
}
qDebug()を試してみたところ、アイテムを自分からドラッグしてQListView
ドロップすると、QWidget
「アイテムがドロップ されました」という出力が表示されます。しかし、私は私の正確なQListView
アイテムをここに持ってくる方法を知りません。