将外部文件放入 QTreeWidget
Posted
技术标签:
【中文标题】将外部文件放入 QTreeWidget【英文标题】:Dropping an external file into a QTreeWidget 【发布时间】:2011-12-21 11:28:27 【问题描述】:我猜 QTreeWidget 的实现并不完全相同,但我希望能够将外部文件,尤其是图像或电影文件拖放到我的 QTreeWidget 中。我不是想把它拖到一个特定的 QTreeWidgetItem 中,而是整个树。这是我的代码:
class moTree(QTreeWidget):
def __init__(self, parent):
super(moTree, self).__init__(parent)
self.setMouseTracking(True)
self.setAcceptDrops(True)
def dragEnterEvent(self, event):
if event.mimeData().hasUrls:
event.accept()
else:
event.ignore()
def dropEvent(self, event):
if event.mimeData().hasUrls:
for url in event.mimeData().urls():
#Handle stuff here
else:
event.ignore()
正在调用dragEnterEvent,但没有调用dropEvent,并且我得到了“阻止”图标。任何想法为什么?
【问题讨论】:
【参考方案1】:您需要重新实现QTreeWidget.mimeTypes,以便它返回您想要支持的types 列表:
def mimeTypes(self):
return QtCore.QStringList([
'text/uri-list',
'application/x-qabstractitemmodeldatalist',
])
【讨论】:
以上是关于将外部文件放入 QTreeWidget的主要内容,如果未能解决你的问题,请参考以下文章
如何手动将文件放入 iOS persistentDataPath?