我實現了一個圖像瀏覽器,我使用鼠標滾輪事件顯示下一個圖像。問題是,如果用戶滾動快速,滾輪的位置值跳過併吞下兩者之間的值。有誰知道我能如何克服這個問題?這是一個示例代碼。如果我慢慢滾動,我會得到遞減值-1,-2,-3;如果我快速滾動,我會得到像-1,-5,-6,-11這樣的東西。問題出現在WindowsXP中& 7.Pyqt Wheel事件
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()的值是否保持不變?我的鼠標滾輪是「clicky」,三角洲是一個常數±120單位。 – ekhumoro
礦井有點光滑,價值不保持不變。如果我快速滾動120步,例如120120240360。 – snowflake