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)

注意事项

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

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

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

相关推荐
在世修行18 小时前
智学文枢:数据管理服务
python·审计日志·pyside·数据清理·孤儿文件
在世修行2 天前
智学文枢:题目流水线
python·多线程·状态机·pyside
在世修行4 天前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
wuyk5555 天前
PyQt6-第10讲-PDF工具箱
python·microsoft·pdf·pyqt
在世修行5 天前
智学文枢:文科分析引擎
python·ai·pyside·文科分析
wuyk5555 天前
PyQt6-第14讲-数据库与Excel双向同步
数据库·python·ui·excel·pyqt
MrWind灬6 天前
我给自己写了个 Kafka 桌面客户端:MrWindKafkaClient
kafka·pyqt
在世修行6 天前
智学文枢:理科分析引擎
python·ai·pyside·理科教学
在世修行6 天前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
万粉变现经纪人7 天前
如何解决 pip install 安装报错 检测到 yanked 版本需更换可用版本 问题
人工智能·python·scrapy·numpy·pandas·pyqt·pip