Qt基础 QListWidget dragDrop拖拽操作

本文介绍了如何在QLisWidget上实现拖拽功能,包括重写鼠标事件函数,使用内置的拖放模式,如设置dragDropMode和dragEnabled,以及处理dropEvent。还提到Qt中的其他控件如QTabWidget和QListWidget的拖放特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.重写

2.本身自带拖拽功能


关于QLisWidget的item拖拽操作,也可以某个控件拖拽思路

1.重写

重写相当于要重写这些事件函数

void mousePressEvent(QMouseEvent *event);        //鼠标按下
void mouseMoveEvent(QMouseEvent *event);        //鼠标移动
void dragEnterEvent(QDragEnterEvent *event);      //拖拽输入事件
void dragMoveEvent(QDragMoveEvent *event);        //小部件上进行拖放操作
void dropEvent(QDropEvent *event);                        //拖拽事件

这里又有多例子

QT QListWidget 实现鼠标拖拽功能_qt listwidget item 拖动-CSDN博客

QT 拖拽 QListWidget发送,Qgraphicview接收_qgraphicsview拖拽事件_小飞侠hello的博客-CSDN博客

2.本身自带拖拽功能

有些控件本身提供了拖拽功能,而且Qt页提供拖拽机制可在帮助文档中通过Drag and Drop关键字查看

比如QTabWIdget或者QListWidget

setDragDropMode(QAbstractItemView::DragDropMode)(设置拖放的样式)

dragDropMode(返回拖放的样式)

QAbstractItemView::NoDragDrop0Does not support dragging or dropping.
QAbstractItemView::DragOnly1The view supports dragging of its own items
 
QAbstractItemView::DropOnly2The view accepts drops
QAbstractItemView::DragDrop3The view supports both dragging and dropping
QAbstractItemView::InternalMove4The view accepts move (not copy) operations only from itself.

setDragEnabled(设置是否支持拖动)

setSelectionBehavior(QAbstractItemView::SelectionBehavior)(拖拽行为)

然后根据控件重写QEvent::Drop事件处理(拖拽事件处理可以参照链接2,大致意思获取拖拽数据,然后需求处理逻辑)

参考

拖拽数据

【Qt】Qt中的拖放操作实现——拖放文件以及自定义拖放操作_acceptproposedaction-CSDN博客

拖拽事件

QT QTableWidget QListWidget 整行拖放移动位置_qtablewidget 拖拽_蜉蝣之翼❉的博客-CSDN博客 QT(4)-QAbstractItemView - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路奇怪

有钱出钱,没钱多出编程主意啊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值