paintEventでqsliderの目盛りを描画したいので、各目盛りの正確な位置を取得する必要があります。ご存知のように、スライダーのハンドルにはある程度のスペースが必要です。そのため、最初の目盛りはスライダーの左右の位置になく、数ピクセルのオフセットがあります。最大値を示す最後の目盛りにも同じことが起こります。スペースのピクセル数を知りたいですか?(winとmacでは、ハンドルは同じ幅ではありません)
1101 次
1 に答える
1
まだ行っていない場合は、Qtソースコードをダウンロードして、その方法をコピーしてください。Q...Style
さまざまなクラス、つまりQMacStyle
、などを調べてくださいQWindowsXPStyle
。主要な計算の一部は次のとおりです。
- QStyle :: slideerPositionFromValue()メソッド
- QStyle :: pixelMetric(QStyle :: PM_SliderTickmarkOffset、...)
スライダーコントロールが描画される、のさまざまなdrawComplexControl
メソッドを調べます。case CC_Slider:
Qt 4.7コードでは、これは、たとえばqwindowsxpstyle.cppの2699行目から始まります。
于 2012-03-23T12:23:59.340 に答える