qt的QListWidget有选择拖拽的属性, list1->setDragEnabled(true):可拖拽list2->setAcceptDrops(true):接受拖拽;这样简单设置之后能满足我们的需求,但会有一个问题,就是从list1拖拽到list2的item拖拽动作完成后这个item还依旧在list1上面,为了解决这个问题,我们可以写一个自己的QListWidget类,先看下效果:

先看myQlistWidget的声明:
class myQlistWidget : public QListWidget{
Q_OBJECT
public:
myQlistWidget(QString name);
signals:
//发送删除信号
void Draged(QListWidgetItem *item);
//接受拖拽来的的item
void PressItem(QListWidgetItem *item);
public slots:
//响应删除信号
void OnRemoveItem(QListWidgetItem *item);
//A响应press信号
void OnClickedItem(QListWidgetItem *item);
//响应item changed信号
void OnItemChanged(QListWidgetItem *item);
//B相应A的press信号
void RecvPressItem(QListWidgetItem *item);
private:
//qlistwidget名字
QString _name;
//A点击的一个

本文介绍了如何在Qt环境中让两个QListWidget之间实现双向拖拽,并在拖拽完成后自动从源列表删除相应item。通过自定义QListWidget类,监听press和change事件,确保拖放操作的正确执行。
最低0.47元/天 解锁文章
6134

被折叠的 条评论
为什么被折叠?



