0
我想爲paintEvent中的qslider繪製一個刻度線,所以我應該得到每個刻度線的確切位置。如您所知,滑塊的手柄需要一些空間,因此第一個刻度線不會位於滑塊的左側/頂部位置,有幾個像素的偏移量。同樣的事情發生在最後一個表示最大值的刻度線上。我想知道空間有多少像素? (在win和mac上,手柄的寬度不一樣)如何獲得Qslider中第一個和最後一個刻度線的位置?
我想爲paintEvent中的qslider繪製一個刻度線,所以我應該得到每個刻度線的確切位置。如您所知,滑塊的手柄需要一些空間,因此第一個刻度線不會位於滑塊的左側/頂部位置,有幾個像素的偏移量。同樣的事情發生在最後一個表示最大值的刻度線上。我想知道空間有多少像素? (在win和mac上,手柄的寬度不一樣)如何獲得Qslider中第一個和最後一個刻度線的位置?
如果您還沒有這樣做,請下載Qt源代碼並複製它們的操作方式。您將要在各種Q...Style
類別看,即QMacStyle
,QWindowsXPStyle
等一些關鍵計算來自:
看看在各種drawComplexControl
方法case CC_Slider:
,其中滑塊控件繪製。例如,在Qt 4.7代碼中,這開始於line 2699 in qwindowsxpstyle.cpp。
非常感謝,這條建議對我有很大的幫助。 – Royt 2012-03-27 05:55:58