在 Qt 中,可以通过重载 QWidget 或 QAbstractScrollArea 的 wheelEvent 方法来响应鼠标滚轮事件。在该方法中,可以获取到滚轮的转动角度 delta,并进行相应的数值操作。
以下是一个示例代码,演示如何在 QWidget 上实现一个简单的数值增减功能:
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel
from PyQt5.QtCore import Qt
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.value = 0 # 初始值为0
layout = QVBoxLayout()
self.label = QLabel(str(self.value))
layout.addWidget(self.label)
self.setLayout(layout)
def wheelEvent(self, event):
delta = event.angleDelta().y() # 获取滚轮转动角度
if delta > 0:
self.value += 1 # 滚轮向上滚动,数值加1
else:
self.value -= 1 # 滚轮向下滚动,数值减1
self.label.setText(str(self.value)) # 更新 label 显示的文本
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
在上述代码中,我们创建了一个名为 MyWidget
的 QWidget 子类,在其中定义了一个整型变量 value
来存储当前的数值。在界面中显示了一个 QLabel 控件用于显示这个数值。
当用户使用鼠标滚轮时,会触发 wheelEvent
方法。通过 event.angleDelta().y()
获取到滚轮的转动角度 delta,并根据其正负来增减数值。最后更新 QLabel 控件的文本,显示当前的数值。
这样就实现了一个简单的鼠标滚轮数值增减功能。