【小记】PySide/PyQt 继承重写 QTextEdit 后拖入图片或文件后输入光标显示异常问题
问题说明:
光标不闪烁不随鼠标点击改变位置,虽然鼠标定位和键盘输入仍然有效。
解决方法:
在重写的 dropEvent 当中执行父类的函数,即添加:
super().dropEvent(event)
from PySide6.QtWidgets import QTextEdit from PySide6.QtGui import QDragEnterEvent, QDropEvent, QTextCursor class PlainTextPasteEdit(QTextEdit): def __init__(self, parent=None): super().__init__(parent) return def insertImage(self, file_name): image_html = f'<img src="{file_name}" alt="image" width="64" height="64"/>' self.insertHtml(image_html) return def dragEnterEvent(self, event: QDragEnterEvent): super().dragEnterEvent(event) if event.mimeData().hasUrls(): event.acceptProposedAction() return def dropEvent(self, event: QDropEvent): super().dropEvent(event) mime = event.mimeData() if mime.hasUrls(): urls = mime.urls() for url in urls: if url.isLocalFile(): file_path = url.toLocalFile() file_extension = os.path.splitext(file_path)[1].lower() if comm.vision_flag and file_extension in \ ['.jfif', '.gif', '.jpeg', '.jpg', '.png', '.bmp', '.pjp', '.apng', '.pjpeg', '.avif']: self.undo() self.insertImage(file_path) event.acceptProposedAction() return
版权声明:
作者:芯片烤电池
链接:https://www.airchip.org.cn/index.php/2024/09/15/%d1%81jpysidejcz%d0%b4qtextedithtdtphbrwjhsrgbxsycwt/
来源:芯片烤电池
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
【小记】PySide/PyQt 继承重写 QTextEdit 后拖入图片或文件后输入光标显示异常问题
问题说明:
光标不闪烁不随鼠标点击改变位置,虽然鼠标定位和键盘输入仍然有效。
解决方法:
在重写的 dropEvent 当中执行父类……