我实现了一个图片浏览器,其中使用鼠标的滚轮事件显示下一张图片。问题是,如果用户滚动太快,滚轮的位置值会跳过并吞噬中间的值。有人知道如何解决这个问题吗?如果我慢慢滚动,我会得到一个递减的值(-1、-2、-3);如果我快速滚动,我会得到像(-1、-5、-6、-11)这样的值。该问题出现在WindowsXP和7上。
以下是示例代码。
以下是示例代码。
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
#############Define MyWindow Class Here ############
class MyWindow(QMainWindow):
##-----------------------------------------
def __init__(self):
QMainWindow.__init__(self)
self.label = QLabel("No data")
self.label.setGeometry(100, 200, 100, 100)
self.setCentralWidget(self.label)
self.setWindowTitle("QMainWindow WheelEvent")
self.x = 0
##-----------------------------------------
def wheelEvent(self,event):
self.x =self.x + event.delta()/120
print self.x
self.label.setText("Total Steps: "+QString.number(self.x))
##-----------------------------------------
##########End of Class Definition ##################
def main():
app = QApplication(sys.argv)
window = MyWindow()
window.show()
return app.exec_()
if __name__ == '__main__':
main()
event.delta()
的值是否保持不变?我的鼠标滚轮是“发嗒声”的,并且delta是一个恒定的±120单位。 - ekhumoro