• 1883阅读
  • 1回复

[提问]新手求问,QListWidget如何实现多项拖拽? [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2019-09-09
大家好,我是一个初学者,现在在制作一个简易播放器。在制作播放列表的时候遇到了一些问题
我把QListWidget重新定义来制作播放列表。

对于这个播放列表的想法是:实现一个QListWidget,在同一列表中,可以做到按住control多选,然后选择完毕之后可以自由拖动选好的QListWidgetItem到指定位置。
现在我已经实现了按住control多选,还实现了单个拖拽和多选右键删除
目前遇到的问题是如果松开control再点我已经选好的item就会取消多选,还有我不清楚如何进行多项拖拽来改变表格。
首先我不能选好之后直接拖拽,这是我处理keypress的地方,因为松开control就会取消多选,导致我选完之后拖动鼠标会取消选择的item,我不知道该怎么办,这是我实现多选的地方。
  1. void PlayListView::keyPressEvent(QKeyEvent *event){
  2.       if (event->key() == Qt::Key_Control){
  3.             setSelectionMode(QAbstractItemView::MultiSelection);
  4.       }
  5. }
  6. void PlayListView::keyReleaseEvent(QKeyEvent *event){
  7.       if (event->key() == Qt::Key_Control){
  8.             qDebug() << "release control";
  9.             setSelectionMode(QAbstractItemView::SingleSelection);
  10.       }
  11. }



还有如果拖动多个item应该如何实现呢?请给一个实现的想法, 我正在尝试读取所有选择的items,然后一个一个在列表删除,再在insert的位置上一个一个粘上去,感觉脑子不好使,经常无法实现我想要的。请问有更好的办法么?

离线20091001753

只看该作者 1楼 发表于: 2019-09-11
Qt 本就支持 多项拖拽

(づ ̄ 3 ̄)づ
快速回复
限100 字节
 
上一个 下一个