我有一个使用PySide2的简单脚本,尽管我使用PyQt5尝试了相同的脚本,但结果相同。我试图将文件拖放到我的窗口上并获取它们的文件路径:
import sys
from PySide2.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setAcceptDrops(True)
def dragEnterEvent(self, e):
if e.mimeData().hasUrls():
e.acceptProposedAction()
def dropEvent(self, e):
for url in e.mimeData().urls():
file_name = url.toLocalFile()
print("Dropped file: " + file_name)
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
在我的系统上,这不允许拖放操作到该窗口。从未调用过dragEnterEvent
。我想念什么吗?
答案 0 :(得分:1)
事实证明,它发生在某些装有Windows 10的系统上。解决方案是从注册表中禁用EnableLUA
:
HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Policies > System
将密钥EnableLUA
从1
更改为0
。然后重新启动计算机。请注意,如果程序尝试更改系统上的某些内容(可能是安全问题),这将导致系统不显示任何对话框。