Qt 如何获得Qslider中第一个和最后一个记号的位置?

Qt 如何获得Qslider中第一个和最后一个记号的位置?,qt,qt4,qslider,Qt,Qt4,Qslider,我想在paintEvent中为qslider画一个记号,所以我应该得到每个记号的确切位置。正如您所知,滑块的控制柄占用了一些空间,因此第一个记号不在滑块的左/顶部位置,有几个像素的偏移。指示最大值的最后一个记号也会发生同样的情况。我想知道这个空间有多少像素?(在win和mac上,句柄的宽度不相同)如果您尚未这样做,请下载Qt源代码并复制它们的操作方式。您需要查看各种Q…Style类,即QMacStyle、QWindowsXPStyle等。一些关键计算来自: QStyle::sliderPosi

我想在paintEvent中为qslider画一个记号,所以我应该得到每个记号的确切位置。正如您所知,滑块的控制柄占用了一些空间,因此第一个记号不在滑块的左/顶部位置,有几个像素的偏移。指示最大值的最后一个记号也会发生同样的情况。我想知道这个空间有多少像素?(在win和mac上,句柄的宽度不相同)

如果您尚未这样做,请下载Qt源代码并复制它们的操作方式。您需要查看各种
Q…Style
类,即
QMacStyle
QWindowsXPStyle
等。一些关键计算来自:

  • QStyle::sliderPositionFromValue()方法
  • QStyle::pixelMetric(QStyle::PM_SliderTickmarkOffset,…)

查看绘制滑块控件的
案例CC\u Slider:
的各种
drawComplexControl
方法。例如,在Qt4.7代码中,这从开始

非常感谢你,这条建议对我帮助很大。