これを解決するために私を助けてください....私は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アイテムをここに持ってくる方法を知りません。