我想在paintEvent中为qslider绘制一个刻度线,所以我应该得到每个刻度线的确切位置。如您所知,滑块的手柄需要一些空间,因此第一个刻度标记不位于滑块的左/上位置,有几个像素的偏移。同样的事情发生在指示最大值的最后一个刻度线上。我想知道这个空间有多少像素? (在win和mac上,手柄的宽度不同)
答案 0 :(得分:1)
如果您还没有这样做,请下载Qt源代码并复制他们的操作方式。您需要查看各种Q...Style
类,即QMacStyle
,QWindowsXPStyle
等。一些关键计算来自:
查看drawComplexControl
的各种case CC_Slider:
方法,其中绘制了滑块控件。例如,在Qt 4.7代码中,这将从line 2699 in qwindowsxpstyle.cpp开始。