Qt drag and drop between two QListWidget

a 夏天 提交于 2019-12-05 01:10:37

You can extend QListWidget overriding dragMoveEvent method like below

#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

Inside our implementation we check the source of the drag event and we don't accept (allow) dropping items that come from our widget itself.
If you're using QtDesigner you can use Promote to... option from the context menu when you right click on the QListWidget on your form. You have to enter a name of your new class (MyListWidget in my example) and you have to enter a name of new header file, where your class will be declared (you can copy and paste the code above into this file).

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!