QCustomPlot滑鼠跟隨顯示座標值

2021-08-26 23:14:50 字數 2119 閱讀 3733

tags: qcustomplot hover

qt最大的優勢就是各種庫非常全,尤其在圖表方面,在5.7版本之後雖然引入了原本企業版才有的qcharts,但相對於只有2個檔案就可以引入庫的qcustomplot來說還是太臃腫了。

這裡解決乙個使用圖表的都會碰到的問題–跟隨滑鼠顯示值,在qcustomplot裡非常簡單,它早就給出了解決方案-qcpitemtracer.可以直接看下面的效果圖。

qcpitemposition這個類表示的是位置的解析方式,理解很好理解,但實際用的時候很容易亂,具體看參考文獻2

跟隨滑鼠的樣式裡包含了文字、箭頭、指示當前值的圓點,為了方便,構造乙個類

class mytracer : public qobject

;public:

explicit

mytracer(qcustomplot *_plot, tracertype _type, qobject *parent = nullptr);

~mytracer();

void setpen(const qpen &pen);

void setbrush(const qbrush &brush);

void settext(const qstring &text);

void setlabelpen(const qpen &pen);

void updateposition(double xvalue, double yvalue);

protected:

void

setvisible(bool visible);

protected:

qcustomplot *plot = nullptr;

qcpitemtracer *tracer = nullptr;// 跟蹤的點

qcpitemtext *label = nullptr; // 顯示的數值

qcpitemline *arrow = nullptr; // 箭頭

tracertype type = datatracer;

bool visible = false;

};

mytracer::mytracer(qcustomplot *_plot, tracertype _type, qobject *parent) : plot(_plot),

type

(_type),

qobject(parent)

case

yaxistracer:

case

datatracer:

default:

break;

}setvisible(false);

}}mytracer::~mytracer()

void mytracer::setpen(const qpen &pen)

void mytracer::setbrush(const qbrush &brush)

void mytracer::setlabelpen(const qpen &pen)

void mytracer::settext(const qstring &text)

void mytracer::setvisible(bool visible)

void mytracer::updateposition(double xvalue, double yvalue)

if (yvalue > plot->yaxis->range().upper)

yvalue = plot->yaxis->range().upper;

switch (type)

case

yaxistracer:

case

datatracer:

default:

break;}}

creating dynamic axis tags using items

qcustomplot使用分享(四) qcpabstractitem

如果我的文字解決了你的問題,請打個賞的,讓我更有動力:)

滑鼠事件 跟隨滑鼠移動

案例分析 1.滑鼠不斷移動,使用滑鼠移動事件 mousemove 2.在頁面中不斷移動,給document註冊事件 3.要移動距離,而且不佔位置,我們使用絕對定位 效果 跟隨滑鼠的天使 title 6 style 7img 11style 12head 13 body 14 img src pic....

物體跟隨滑鼠位置

我一開始做的時候就是不跟隨我也不知道 不對,後來發現原來是應該把相機的projection調為正交模式,在正交模式下物體沒有遠近之分,比較適合做2d遊戲 我們當然可以直接讓物體的位置等於滑鼠的位置但在這裡有兩點需要注意,第一點就是他們兩個的座標系不一樣,滑鼠的座標是螢幕座標,以左下角為原點,而世界座...

跟隨滑鼠移動 2020 1 24

跟隨滑鼠移動 mousemove只要我們滑鼠移動1px 就會觸發這個事件 千萬不要忘記給left 和top 新增px 單位 doctype html en utf 8 viewport content width device width,initial scale 1.0 x ua compati...