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)

相关推荐
狮子雨恋16 小时前
【无标题】
pyqt
微小冷3 天前
pyqt+matplotlib多进程图像刷新
pyqt·matplotlib·进程通信·多进程·queue·process
千里码aicood3 天前
PyQt基于卷积神经网络的智慧校园的设计与实现
人工智能·cnn·pyqt
千里码aicood4 天前
基于PyQt心理咨询机器人智能系统的设计与实现
机器人·pyqt
典典分享指南4 天前
Windows 自动化踩坑实录
python·intellij-idea·pyqt·emacs·visual studio
深蓝海拓6 天前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量
网络·笔记·python·学习·pyqt
橘色的喵8 天前
PySide6 工业上位机的实时帧链、零拷贝与跨语言架构
c++·架构·图像·pyside
智购科技自动售卖机厂家9 天前
2026自动售货机OTA升级系统设计:从全量升级到差分升级的带宽优化工程实践~YH
大数据·人工智能·numpy·pyqt·fastapi
【赫兹威客】浩哥10 天前
【无标题】
python·spring·django·pyqt
小灰灰搞电子11 天前
PyQt QTextBoundaryFinder类详解:精准定位文本边界
pyqt