PySide6/PyQt Ctrl 滚轮 实现文本缩放功能
Ctrl 滚轮 实现文本缩放功能
实现原理
- 继承文本编辑(
QTextEdit)或者纯文本编辑(QPlainTextEdit)重写其中的滚轮事件(wheelEvent)。 - 获取事件的修饰符(
modifier),判断是否是控制修饰符(ControlModifier) - 获取滚动角度(
angleDelta) 的纵轴(y)偏移量 - 如果大于零向上,小于零向下
代码展示
# from PySide6.QtGui import QFont,QWheelEvent
# 重写时 倒入 上诉 方便查看文档def wheelEvent(self, e: QWheelEvent):"""鼠标滚动事件"""# 获取 KeyboardModifier 查看是否等于 ControlModifierif e.modifiers() == Qt.KeyboardModifier.ControlModifier:# y轴滚动角度 => 上下滚动角度delta = e.angleDelta().y()# 向上if delta > 0:self.zoomIn()# 向下else:self.zoomOut()else:return super().wheelEvent(e)
注意事项
这里的modifiers在Qt for Python的官网里难以找到 但是可以确定的是:返回的类型是 Qt.KeyboardModifier.ControlModifier
这里与参考的Qt文档不同,另一个就是偏移亮(delta)
参考文档(https://jishuzhan.net/article/1760965237432913922)
