qt qchart縮放後坐標軸間隔取整

2022-07-23 04:27:09 字數 1213 閱讀 2935

使用qt的qchart顯示資料曲線,座標軸qvalueaxis可以設定刻度間隔數量,但每個刻度的數值是根據座標的極值除以間隔數量得到的,不一定是整數,導致曲線控制項的顯示刻度不適合觀察。

如圖:

縱座標刻度帶有小數,觀察資料曲線時,就不容易計算曲線的波動。解決方法很簡單,就是設定曲線座標範圍後,根據座標範圍計算設定間隔數量,讓每個刻度都是整數,例如:

範圍-100~700,共8個區域,9個刻度,所以:

1 mayis0->settickcount(9); //

會劃分成幾個單位·

2 mayis0->setrange(-100,700

);3 mayis0->setlabelformat("

%d"); //

設定刻度的格式

這樣就解決了初始化時曲線控制項的座標軸間隔取整問題,但是曲線控制項顯示過程中認為進行縮放,座標軸間隔就會隨著人畫的縮放區域變化,出現小數(不整的數)。

所以還需要加入座標軸對範圍變化的響應,例如,要將座標軸的刻度值設定成10的倍數:

connect(mayis0,signal(rangechanged(qreal, qreal)),this,slot(mayis0_rangechanged(qreal, qreal)));

然後在座標範圍變化時,首先給最小值取整,然後將最大值變化到間隔可以取整的值。

1

void

mainwindow::mayis0_rangechanged(qreal min, qreal max)

29 u32 t=ma-mi;

10 t0=t%80;11

if(t0)

1215 mayis0->setrange(mi,ma);

16 }

這樣每次人工選擇縮放區域都能變化到可取整的區域,效果:

先填充在縮放和先縮放後填充的區別

將同樣的一張圖 101 156 採用兩種不同的方式進行縮放填充,帶來的畫素差異 1.先填充後縮放 2.先縮放後填充 opencv2預設採用的是inter linear 雙線性插值法 3.對比兩張的不同並且視覺化 結果將會顯示近一半的畫素值不同.為什麼會產生這種原因呢?主要是座標的位置發生了變化,因為...

IE 報表縮放後頁面破版

需要自己新增ie的報表放大縮小的按鈕 1.找到需要放大報表的位置 2.設定它為相對位置 absolute 3.設定它的位置為 0,0 放大 zoom reportviewer1為報表reportviewer的id reportviewer1 fixedtable tbody tr nth child...

js設定div縮放 與雙指縮放

function zoomtale 雙指縮放 type var store 縮放事件的處理 document.addeventlistener touchstart function event store.originscale store.scale 1 document.addeventlis...