大家好,我是一个初学者,现在在制作一个简易
播放器。在制作播放列表的时候遇到了一些
问题。
我把
QListWidget重新定义来制作播放列表。
对于这个播放列表的想法是:实现一个QListWidget,在同一列表中,可以做到按住control多选,然后选择完毕之后可以自由拖动选好的QListWidgetItem到指定位置。
现在我已经实现了按住control多选,还实现了单个拖拽和多选右键
删除。
目前遇到的问题是如果松开control再点我已经选好的item就会取消多选,还有我不清楚如何进行多项拖拽来改变表格。
首先我不能选好之后直接拖拽,这是我处理keypress的地方,因为松开control就会取消多选,导致我选完之后拖动鼠标会取消选择的item,我不知道该怎么办,这是我实现多选的地方。
- void PlayListView::keyPressEvent(QKeyEvent *event){
- if (event->key() == Qt::Key_Control){
- setSelectionMode(QAbstractItemView::MultiSelection);
- }
- }
- void PlayListView::keyReleaseEvent(QKeyEvent *event){
- if (event->key() == Qt::Key_Control){
- qDebug() << "release control";
- setSelectionMode(QAbstractItemView::SingleSelection);
- }
- }
还有如果拖动多个item应该如何实现呢?请给一个实现的想法, 我正在尝试读取所有选择的items,然后一个一个在列表删除,再在insert的位置上一个一个粘上去,感觉脑子不好使,经常无法实现我想要的。请问有更好的办法么?