核心
在 PyQt5 中,你可以通过处理鼠标滚轮事件来设置
QTextEdit
的字体大小。具体做法是在QTextEdit
上重新实现wheelEvent
方法,并根据滚轮方向调整字体大小。
代码
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class MouseChangeQTextEditFont(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("快捷键示例")
self.textEdit = QTextEdit()
layout = QVBoxLayout()
layout.addWidget(QPushButton("按钮"))
layout.addWidget(self.textEdit)
self.setLayout(layout)
def wheelEvent(self, event: QWheelEvent):
# 捕捉鼠标滚轮事件并调整字体大小
delta = event.angleDelta().y()
font = self.textEdit.font()
# 根据滚轮方向调整字体大小
if delta > 0:
font.setPointSize(font.pointSize() + 1)
else:
font.setPointSize(font.pointSize() - 1)
self.textEdit.setFont(font)
def func(self):
print('按钮被点击了')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MouseChangeQTextEditFont()
window.show()
sys.exit(app.exec_())
效果
控件的简单封装实现
class TextEdit(QTextEdit):
def __init__(self, parent=None):
super().__init__(parent)
self.setFont(standard_font) # 设置标准字体
def wheelEvent(self, event: QWheelEvent):
# 捕捉鼠标滚轮事件并调整字体大小
delta = event.angleDelta().y()
font = self.font()
# 根据滚轮方向调整字体大小
if delta > 0:
font.setPointSize(font.pointSize() + 1)
else:
font.setPointSize(font.pointSize() - 1)
self.setFont(font)