如何在pyQT中获取从其他地方拖出的文本?

2024-10-01 00:15:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一些文字拖到pyQT的文本编辑窗体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方法。但是,我拖动的文本无法在控制台中打印。你知道吗

那么,我的密码怎么了?如何改变代码,让它可以做我想做的事?你知道吗


Tags: self网页密码地方窗体contentpyqtword
1条回答
网友
1楼 · 发布于 2024-10-01 00:15:09

一般来说,您会对要添加拖放支持的小部件进行子类化,并重新实现dragEnterEventdragMoveEventdragLeaveEventdropEvent方法。许多小部件已经支持拖放,包括QTextEdit。只要acceptDrops()是真的(默认情况下是真的),像您所说的拖放应该已经起作用了。但是如果你想手动操作的话

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)

相关问题 更多 >