【问题标题】:Dropping an external file into a QTreeWidget将外部文件放入 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,并且我得到了“阻止”图标。任何想法为什么?

【问题讨论】:

    标签: python pyqt drag-and-drop pyside qtreewidget


    【解决方案1】:

    您需要重新实现QTreeWidget.mimeTypes,以便它返回您想要支持的types 列表:

    def mimeTypes(self):
        return QtCore.QStringList([
            'text/uri-list',
            'application/x-qabstractitemmodeldatalist',
            ])
    

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 2016-05-15
      • 2015-09-13
      相关资源
      最近更新 更多