今年國外疫情影響 , 真的比較閒..................ide
上網的時候無心中看到很多 製做儀表盤自定義控件的, 忍不住本身也作了一個.ui
先提下幾個大仙: xieguiproject (謝大仙), feiyangqingyun (劉大仙), Osean_li (李大仙),指針
先貼個圖,指針從 100-->240-->0->240循環往復 code
用了一個 圓形漸變 和 一個圓錐漸變 .自定義控件屬性有 設置最大最小值,blog
大刻度和小刻度. 起始位置,結束位置和 6 點鐘位置夾角。ip
還有設置當前數值和小數點.it
設置刻度值數字的時候, 要分座標軸左右 用不一樣的公式來微調,class
網上不少代碼段落都是不完整的 . 例如求刻度數值座標位置
...................................gui
w = fm.size(Qt::TextSingleLine,str).width();循環
h = fm.size(Qt::TextSingleLine,str).height(); x = 82 * cosa - w / 2; y = -82 * sina + h / 4; painter->drawText(x, y, str)
drawtext() 從左到右,可是若是圓的左右上下都是一個座標公式, 儀表盤半徑變更的時候,
問題就會比較 明顯. 如數字侵入到 儀表盤 刻度上 ,或 遠離刻度. 因此座標軸正負方向特別是 x 軸 分開用兩個公式來微調刻度值 的位置比較好 . 另外半徑用控件大小的比例來設置,不直接固定 大小.