我想将一些文字拖到pyQT的TextEdit表单MS Word或网页或其他有一些单词的地方。
我的密码是:
self.inputBox = QtWidgets.QTextEdit(xxxx)
self.inputBox.dragEnterEvent = self.onDragEnter
def onDragEnter(self, event):
content = self.inputBox.toPlainText()
print(content)
print(123)
当我将一些单词拖到textEdit时,控制台将打印123,这意味着已调用onDragEnter
方法。但是,我拖动的文本永远不会在控制台中打印出来。
那么,我的代码中有什么问题?以及如何更改代码以便它可以做我想要的?
答案 0 :(得分:0)
通常,您可以将要添加拖放支持的窗口小部件子类化,并重新实现dragEnterEvent
,dragMoveEvent
,dragLeaveEvent
和dropEvent
方法。许多小部件已经支持拖放,包括QTextEdit
。只要acceptDrops()
为True(默认为默认值),就像你说的那样拖拽应该已经有效了。但如果你想手动完成
def dragEnterEvent(self, event):
if event.mimeData().hasText():
event.accept()
else:
event.ignore()
def dropEvent(self, event):
if event.mimeData().hasText():
text = event.mimeData().text()
self.insertPlainText(text)