텍스트를 입력 할 수있는 간단한 QListWidget을 만들려고했습니다. 작동하도록 만들 수 없습니다. drop-event는 트리거되지 않고, drag 이벤트는 다른 한편으로는 트리거됩니다. 아무도 올바른 방향으로 나를 가리킬 수 있습니까? 나는 무엇을 잘못 했는가?Python PyQt5 : QListWidget이 방울을 허용하지 않습니다.
미리 감사드립니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit, QLabel, QListWidget
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 drag and drop'
self.left = 500
self.top = 400
self.width = 400
self.height = 250
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
editBox = QLineEdit('Drag this', self)
editBox.setDragEnabled(True)
editBox.move(10, 10)
editBox.resize(100,32)
listwidget = CustomLabel(self)
listwidget.move(130,15)
self.show()
class CustomLabel(QListWidget):
def __init__(self, parent):
super().__init__(parent)
self.setAcceptDrops(True)
def dragEnterEvent(self, e):
if e.mimeData().hasFormat('text/plain'):
print("dragged")
e.accept()
else:
e.ignore()
def dropEvent(self, e):
print("dropped")
self.addItem(event.mimeData().text())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
어쨌든 드래그를 시작해야합니다. [드래그 앤 드롭 문서] (http://doc.qt.io/qt-5/dnd.html)를보십시오. –
해달라고 ... 미안합니다 – Arwed
그게 단지 특정 위젯에게 * 수락 * 상품을 알리는 것입니다 - 실제로 드래그 작업을 시작하는 것과 아무런 관련이 없습니다. 내 첫 코멘트에 링크 된 문서를 읽으십시오. –