关于pyside6(pyside2)中文件拖放到控件的问题

网上能查到的方案一般是继承某个Qwidget,然后覆盖dragEnterEvent,dropEvent这两个方法。然而我发现dropEvent就是没有触发……后来经过研究,还要覆盖一下dragMoveEvent这个方法,那么其实就是需要覆盖(重载)三个方法拖放文件才生效。至于具体原因……我不大懂编程,怎么可能知道。

代码如下(原意是打算在QTableWidget里填充文件列表,那个很简单就没写完,只实现了拖放):

from PySide6.QtWidgets import QTableWidget

class QTableWidget(QTableWidget):
    def __init__(self, parent=None):
        super(QTableWidget, self).__init__(parent)
        self.setAcceptDrops(True)

    def dragEnterEvent(self, event):

        if event.mimeData().hasUrls():
            event.accept()
        else:
            event.ignore()

    def dragMoveEvent(self, event):
        pass

    def dropEvent(self, event): 
        files = [str(u.toLocalFile()) for u in event.mimeData().urls()]
        for f in files:
            print(f)