问题描述
当我在 QScrollArea 中滚动一个小部件时,它的滚动条的步长不是 singleStep() 而是 singleStep() * 3。
我将 QScrollArea 的 verticalScrollBar() 的 singleStep 设置为 30,以便每次滚动滚动 30,但每次滚动滚动 90。
b
还是这只是我鼠标的问题?
解决方法
正如评论中提到的,您的单步是乘以系统的行数。
如果您想对较少的系统设置使用相同的滚动步骤,请始终相应地调整该步骤。例如,对于 Windows:
#include <winuser.h>
#include <QScrollBar>
void setSingleStep(QScrollBar* bar,int step) {
UINT sys_steps;
SystemParametersInfoA(SPI_GETWHEELSCROLLLINES,&sys_steps,0);
bar->setSingleStep(step / sys_steps);
}