我想在paintEvent中为qslider绘制一个刻度线,所以我应该得到每个刻度线的确切位置。如您所知,滑块的句柄需要一些空间,因此第一个刻度线不在滑块的左侧/顶部位置,有几个像素的偏移量。最后一个表示最大值的刻度线也会发生同样的情况。我想知道空间有多少像素?(win和mac上,手柄宽度不一样)
问问题
1101 次
1 回答
1
如果您还没有这样做,请下载 Qt 源代码并复制他们的做法。您将需要查看各种Q...Style
类,即QMacStyle
,QWindowsXPStyle
等。一些关键计算来自:
- QStyle::sliderPositionFromValue() 方法
- QStyle::pixelMetric(QStyle::PM_SliderTickmarkOffset, ...)
查看绘制滑块控件的各种drawComplexControl
方法。case CC_Slider:
例如,在 Qt 4.7 代码中,这从qwindowsxpstyle.cpp 的第 2699 行开始。
于 2012-03-23T12:23:59.340 回答