Есть форма, на ней 2 виджета: QListWidget1, QListWidget2.
Хочу сделать перетаскивание с 1 на 2. Для этого мне необходимо в QListWidget2 переопределить методы. Я сделал наследника так:
class listViewForDrop: public QListWidget
{
Q_OBJECT;
public:
listViewForDrop(QWidget *widget = 0);
~listViewForDrop();
protected:
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
void dragMoveEvent(QDragMoveEvent *event);
void dragLeaveEvent(QDragLeaveEvent *event);
};
/*реализация*/
void listViewForDrop::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasFormat("application/x-qabstractitemmodeldatalist"))
{
// event->setDropAction(Qt::MoveAction);
event->setDropAction(Qt::CopyAction); /*пока так, но вообще надо сделать именно перенос*/
event->accept();
} else {
event->ignore();
}
}
Но, если я вас правильно понимаю, то вы утверждаете, что можно и не делать наследника и все будет работать? Но как? Я вот именно этот момент и не могу понять, если я не перепишу эти 4 класса, у меня не будет приема!