Iき2 QListWidget(LIST1とLIST2)Qtのドラッグ両者のドロップQListWidget
list1
する内部ドラッグで再編成することができなければならないlist2
list1
からアイテムを受け取ることができなければならないとlist2
がlist1
012からアイテムを受け取ることができるはずドロップ
list1->setSelectionMode(QAbstractItemView::SingleSelection);
list1->setDragEnabled(true);
list1->setDragDropMode(QAbstractItemView::DragDrop);
list1->viewport()->setAcceptDrops(true);
list1->setDropIndicatorShown(true);
ulist2->setSelectionMode(QAbstractItemView::SingleSelection);
list2->setDragEnabled(true);
list2->setDragDropMode(QAbstractItemView::InternalMove);
list2->viewport()->setAcceptDrops(true);
list2->setDropIndicatorShown(true);
list2
をInternalMove
に置く必要がありました。それ以外の場合は、list1
にドラッグするとアイテムが削除されません。
もし私がlist1
をInternalMove
に入れたら、それ以上は落とせません。
これを行うには、独自のドラッグアンドドロップ機能を作成する必要がありますか?あなたは私たちの実装内部
#ifndef MYLISTWIDGET_HPP
#define MYLISTWIDGET_HPP
#include <QListWidget>
class MyListWidget : public QListWidget {
public:
MyListWidget(QWidget * parent) :
QListWidget(parent) {}
protected:
void dragMoveEvent(QDragMoveEvent *e) {
if (e->source() != this) {
e->accept();
} else {
e->ignore();
}
}
};
#endif // MYLISTWIDGET_HPP
以下のようなQListWidget
オーバーライドdragMoveEvent
方法を拡張することができ