0

私はQScrollBarのスライダーがsingleSteps()の数に基づいてサイズを変更するようにするためにいくつかのことを試みました。stepSize()を〜1にします。

次のリンクは私に最も近いものですが、それを機能させることができないようです。

http://www.qtcentre.org/threads/2133-QScrollBar-custom-slider-s-size

スライダーのサイズを変更するにはどうすればよいですか?コードを投稿しますが、上記のようにさまざまな試みを試みました。スレートをきれいにして、スライダーのサイズを変更する方法のきれいな例を見てみたいと思います。

4

1 に答える 1

1

通常、スライダーのサイズは、スクロールされたコンテンツの表示部分のサイズを表すことになっています。これが、QAbstractSliderのAPIが実行するように設計されたものです。

表示部分のサイズをコンテンツの非整数の全体サイズの整数倍にロックする場合、それにアプローチする慣用的な方法は、非整数係数でスクロールバーの出力を再スケーリングすることですheight / (maximum() + pageStep())。ドキュメントの論理的な高さ(長さ)はにマップされmaximum() + pageStep()ます。singleStep()もちろん、に等しくなるように設定することもできますpageStep()

とが与えられたら、次のようnumStripsheight進めます。

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;
于 2012-07-09T00:37:49.507 に答える