【qt】QListWidget 拖拽更改順序


QListWidget

拖拽更改順序

先加入這個類(重載,實現拖拽改變list順序);

然后對於想要用這個重載類的類,構造函數加上("ui->widget_todo",建議在你想添加這個QListWidget地方先建一個widget,我這里取名是widget_todo,就是在這個里面添加)

listWidget = new YYListWidget(ui->widget_todo);

QListWidget有的函數重載類一樣使用;

下面是類詳細代碼(類忘記是轉載誰的博客的)

yylistwidget.cpp

#include "yylistwidget.h"

#include <QApplication>
#include <QDrag>
#include <QKeyEvent>
#include <QMimeData>
#include "QDebug"

YYListWidget::YYListWidget(QWidget *parent) : QListWidget(parent)
{

  this->setAcceptDrops(true);
  this->setDragEnabled(true);
}

YYListWidget::~YYListWidget()
{

}


// 接收放置后添加一項

void YYListWidget::dropEvent(QDropEvent *event)

{
    qDebug()<<"dropEvent";
    QListWidget::dropEvent(event);

    performDrag();
    //刪除復制的

}

// 實現拖動,刪除最開始的那個項
void YYListWidget::performDrag()

{
  QListWidgetItem *item = this->takeItem(this->currentRow ());
  delete  item;
}

yylistwidget.h

#ifndef YYLISTWIDGET_H
#define YYLISTWIDGET_H

#include <QWidget>
#include "QListWidget"

class YYListWidget : public QListWidget
{
   Q_OBJECT
public:
   explicit YYListWidget(QWidget *parent = Q_NULLPTR);
   ~YYListWidget();

   void dropEvent(QDropEvent *event);
   void performDrag();

signals:

public slots:

private:


};

#endif // YYLISTWIDGET_H


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM