条目的拖拽

最后更新于:2022-04-02 02:11:24

[TOC] ## 条目的拖拽 QListWidget、QTableWidget、 QTreeWidget 自带了拖拽条目的功能,拖拽通常有两种应用场景: 1. 第一种场景是内部拖拽 ``` ui->treeWidget->setDragDropMode(QAbstractItemView::InternalMove); ``` 2. 第二种场景是跨界拖拽 步骤: (1)设置控件的 dragEnabled 属性为 true; (2)设置控件的视口 viewport() 的 acceptDrops 属性为 true; (3)为用户显示拖拽动作的鼠标效果,设置控件的 showDropIndicator 属性为 true; (4)设置控件的拖拽模式为能拖能拽的 QAbstractItemView::DragDrop 。 单选实例 ``` QListWidget *listWidget = new QListWidget(this); listWidget->setSelectionMode(QAbstractItemView::SingleSelection); //单选模式 listWidget->setDragEnabled(true); //可以拖出源条目 listWidget->viewport()->setAcceptDrops(true); //可以接收拖入 listWidget->setDropIndicatorShown(true); //启用拖拽的显示效果 listWidget->setDragDropMode(QAbstractItemView::DragDrop); //使用能拖能拽的模式 ``` 外部拖拽 ``` ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //单选模式 ui->tableWidget->setDragEnabled(true); //可以拖出源条目 ui->tableWidget->viewport()->setAcceptDrops(true); //视口可以接收拖入 ui->tableWidget->setDropIndicatorShown(true); //启用拖拽的显示效果 ui->tableWidget->setDragDropMode(QAbstractItemView::DragDrop); //使用能拖能拽的模式 ```
';