pyqt 拖动文件列表
时间: 2023-08-21 20:06:01 浏览: 101
在PyQt中实现拖拽文件列表的功能可以通过重载QWidget的dragEnterEvent和dropEvent函数来实现。首先,我们需要在窗口中创建一个QListWidget对象,用于显示拖拽的文件列表。然后,我们需要在dragEnterEvent函数中判断拖拽的数据是否包含文件路径,并接受拖拽事件。在dropEvent函数中,我们可以获取拖拽的文件路径列表,并将其添加到QListWidget中显示出来。
以下是一个示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout
class DragWidget(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('PyQt Drag and Drop')
self.setAcceptDrops(True)
self.file_list_widget = QListWidget(self)
layout = QVBoxLayout()
layout.addWidget(self.file_list_widget)
self.setLayout(layout)
def dragEnterEvent(self, event):
if event.mimeData().hasUrls():
event.accept()
else:
event.ignore()
def dropEvent(self, event):
file_urls = event.mimeData().urls()
file_paths = \[url.toLocalFile() for url in file_urls\]
self.file_list_widget.addItems(file_paths)
event.accept()
if __name__ == '__main__':
app = QApplication(sys.argv)
w = DragWidget()
w.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个QListWidget对象`file_list_widget`,并将其添加到窗口中。在dragEnterEvent函数中,我们判断拖拽的数据是否包含文件路径,并接受拖拽事件。在dropEvent函数中,我们获取拖拽的文件路径列表,并将其添加到QListWidget中显示出来。
希望这个示例能帮助到你实现拖拽文件列表的功能。
#### 引用[.reference_title]
- *1* [【PyQt拖拽文件】——打造交互式界面](https://blog.csdn.net/qq_33885122/article/details/129722299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [pyqt界面支持拖拽文件](https://blog.csdn.net/u014436243/article/details/112604096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文