PySide6/PyQt Ctrl 滚轮 实现文本缩放功能

Ctrl 滚轮 实现文本缩放功能

实现原理

  1. 继承文本编辑(QTextEdit)或者纯文本编辑(QPlainTextEdit)重写其中的滚轮事件(wheelEvent)。
  2. 获取事件的修饰符(modifier),判断是否是控制修饰符(ControlModifier)
  3. 获取滚动角度(angleDelta) 的纵轴(y)偏移量
  4. 如果大于零向上,小于零向下

代码展示

py 复制代码
# from PySide6.QtGui import QFont,QWheelEvent
# 重写时 倒入 上诉 方便查看文档
    def wheelEvent(self, e: QWheelEvent):
        """鼠标滚动事件"""
        # 获取 KeyboardModifier 查看是否等于 ControlModifier
        if e.modifiers() == Qt.KeyboardModifier.ControlModifier:

            # y轴滚动角度 => 上下滚动角度
            delta = e.angleDelta().y()

            # 向上
            if delta > 0:
                self.zoomIn()

            # 向下
            else:
                self.zoomOut()
        else:
            return super().wheelEvent(e)

注意事项

这里的modifiersQt for Python的官网里难以找到 但是可以确定的是:返回的类型是 Qt.KeyboardModifier.ControlModifier

这里与参考的Qt文档不同,另一个就是偏移亮(delta)

参考文档(https://jishuzhan.net/article/1760965237432913922)

相关推荐
TRACER~851 天前
项目实战:pyqt6实现拼豆图纸生成器
python·pyqt
龙腾AI白云10 天前
大模型Prompt实战:精准生成专业技术文档
plotly·pyqt·fastapi·tornado·dash
CodebySandwich14 天前
QWidget转化为matplotlib绘图窗体
pyqt
懷淰メ14 天前
python3GUI---基于PyQt5+YOLOv8+DeepSort的智慧行车可视化系统(详细介绍)
开发语言·yolo·计算机视觉·pyqt·yolov8·deepsort·车距
:mnong15 天前
附图报价系统设计分析2
python·pyqt·openvino
@fai15 天前
PyQt6 Graphic进阶实战:打造一个视觉恒定的可缩放矩形框
python·pyqt
佳木逢钺19 天前
PyQt界面美化系统高级工具库:打造现代化桌面应用的完整指南
python·pyqt
李昊哲小课19 天前
PySide6 记事本应用开发教程
python·pyqt·pyside
李昊哲小课20 天前
第1章-PySide6 基础认知与环境配置
python·pyqt·pyside
李昊哲小课20 天前
第2章-PySide6 核心架构与基本语法
pyside