первый файл то, что с генерировал pyuic4
название файла ui_main_window.py
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'usr.ui' # # Created: Fri Oct 26 16:44:10 2012 # by: PyQt4 UI code generator 4.9.5 # # WARNING! All changes made in this file will be lost! import sys from PyQt4 import QtCore, QtGui import xml.etree.ElementTree as etree try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(1154, 883) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
второй файл test.py
# -*- coding: utf-8 -*- import sys from PyQt4 import QtCore, QtGui from ui_main_window import Ui_MainWindow class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # или QWidget def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setAcceptDrops(True) self.setupUi(self) def dragEnterEvent(self, event): event.acceptProposedAction() def dragMoveEvent(self, event): event.acceptProposedAction() def dragLeaveEvent(self, event): event.accept() def dropEvent(self, event): mimeData = event.mimeData() if mimeData.hasUrls(): files = [url.toLocalFile() for url in mimeData.urls()] event.acceptProposedAction() print(files) # можно делать что-то с именами файлов if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
Почему-то перетаскивание не работает, хотя вроде все правильно.