问题
如标题所示,在重写了QPlainTextEdit的拖放方法后,发现拖放文件后光标就不动了,但编辑功能正常,就很奇怪,虽然不会报bug,但很影响使用,文档里翻了半天没有找到问题,换了个搜索姿势后找到了和我遇到相同问题的人,并且解决方法也很奇特。
解决方法
方法来自:PyQt5 QTextEdit重写dropEvent方法后拖入文件光标不动的问题
问题出在重写的dropEvent
方法上,只需要加一句super().dropEvent(event)
重新继承方法即可。
class MyQPlainTextEdit(QPlainTextEdit):
"""实现文件拖放功能"""
def __init__(self, parent=None):
super().__init__(parent)
self.setAcceptDrops(True)
def dragEnterEvent(self, e):
if e.mimeData().text().endswith('.srt'):
e.accept()
else:
e.ignore()
def dropEvent(self, e):
path = e.mimeData().text().replace('file:///', '')
super().dropEvent(e) # 加这一句即可
self.setPlainText(path)