Функция перетаскивания PySide2 не работает - PullRequest
0 голосов
/ 29 января 2019

У меня есть этот простой скрипт, который использует 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 никогда не называется.Я что-то упустил?

1 Ответ

0 голосов
/ 29 января 2019

Оказывается, это происходит на некоторых системах с Windows 10. Решение состоит в том, чтобы отключить EnableLUA из реестра:

HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Policies > System

Изменить ключ EnableLUA с *От 1008 * до 0.Затем перезагрузите компьютер.Обратите внимание, что это приведет к тому, что ваша система не будет показывать никаких диалогов, если программа попытается изменить что-то в вашей системе, что может быть проблемой безопасности.

...