通常、スライダーのサイズは、スクロールされたコンテンツの表示部分のサイズを表すことになっています。これが、QAbstractSlider
のAPIが実行するように設計されたものです。
表示部分のサイズをコンテンツの非整数の全体サイズの整数倍にロックする場合、それにアプローチする慣用的な方法は、非整数係数でスクロールバーの出力を再スケーリングすることですheight / (maximum() + pageStep())
。ドキュメントの論理的な高さ(長さ)はにマップされmaximum() + pageStep()
ます。singleStep()
もちろん、に等しくなるように設定することもできますpageStep()
。
とが与えられたら、次のようnumStrips
にheight
進めます。
int numStrips;
qreal height;
int page = qRound(height/numStrips);
int max = (numStrips - 1) * page;
scrollBar->setMinimum(0);
scrollBar->setMaximum(max);
scrollBar->setPageStep(page);
scrollBar->setSingleStep(page);
qreal strip = scrollBar->value() * height / max;