0

paintEventでqsliderの目盛りを描画したいので、各目盛りの正確な位置を取得する必要があります。ご存知のように、スライダーのハンドルにはある程度のスペースが必要です。そのため、最初の目盛りはスライダーの左右の位置になく、数ピクセルのオフセットがあります。最大値を示す最後の目盛りにも同じことが起こります。スペースのピクセル数を知りたいですか?(winとmacでは、ハンドルは同じ幅ではありません)

4

1 に答える 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 に答える