Qt C++ 自定義控件 和 汽車儀表盤 ---ricky.chu

今年國外疫情影響 , 真的比較閒..................ide

上網的時候無心中看到很多 製做儀表盤自定義控件的, 忍不住本身也作了一個.ui

先提下幾個大仙: xieguiproject (謝大仙), feiyangqingyun (劉大仙), Osean_li (李大仙),指針

先貼個圖,指針從 100-->240-->0->240循環往復 code

Qt C++ 自定義控件 和 汽車儀表盤  ---ricky.chu

用了一個 圓形漸變 和 一個圓錐漸變 .自定義控件屬性有 設置最大最小值,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 軸 分開用兩個公式來微調刻度值
    的位置比較好 . 另外半徑用控件大小的比例來設置,不直接固定 
    大小.
相關文章
相關標籤/搜索