2012-03-23 8 views
0

paintEvent의 qslider에 눈금을 그려야하므로 각 눈금 표시의 정확한 위치를 얻어야합니다. 알다시피, 슬라이더의 핸들에 약간의 공간이 필요하므로 첫 번째 눈금이 슬라이더의 왼쪽/위쪽 위치에 있지 않으므로 몇 픽셀의 오프셋이 있습니다. 최대 값을 나타내는 마지막 눈금에도 똑같은 일이 일어납니다. 나는 공간의 얼마나 많은 픽셀을 알고 싶습니까? (win과 mac에서 핸들이 같은 너비가 아님)Qslider에서 첫 번째와 마지막 눈금 표시의 위치를 ​​얻는 방법은 무엇입니까?

답변

1

아직 수행하지 않았다면 Qt 소스 코드를 다운로드하고 어떻게 수행하는지 복사하십시오. 당신은 다양한 Q...Style 클래스의 키 계산의 일부에서 온 등 즉 QMacStyle, QWindowsXPStyle,보고 싶은 것 :

  • QStyle :: sliderPositionFromValue() 메소드
  • QStyle :: pixelMetric (QStyle을 :: PM_SliderTickmarkOffset, ...) 슬라이더 컨트롤 그려 case CC_Slider: 대한 다양한 drawComplexControl 방법에

봐. Qt 4.7 코드에서 이것은 예를 들어 line 2699 in qwindowsxpstyle.cpp에서 시작됩니다.

+0

대단히 감사합니다.이 조언은 제게 많은 도움이됩니다. – Royt

관련 문제