[英]How to enable mouse popup in QtCharts?
據我所知,你必須自己做。 我需要完全相同,並使用嵌入在QGraphicsProxyWidget中的簡單QWidget,我將其添加到圖表視圖的QGraphicsScene中。
QWidget *popup = new MyPopUpWidget;
QChartView v;
QGraphicsProxyWidget *proxy = v.scene()->addWidget(popup);
// if you want a drop shadow you can use QGraphicsDropShadowEffect
QGraphicsDropShadowEffect* shadow = new QGraphicsDropShadowEffect();
shadow->setOffset(0, 4);
shadow->setBlurRadius(8);
proxy->setGraphicsEffect(shadow);
雖然這很簡單,但彈出窗口的定位才是實際工作。 所有簡單的解決方案對我來說都不夠好。 例如,如果您的鼠標命中QGraphicsItem(圖表的所有行項目都是QGraphicsItems),則會有信號,但它們通常很小,您只想對實際數據點做出反應,而不是對線段做出反應。
您可以覆蓋mouseMove(QMouseMoveEvent *)函數,並始終針對所有數據點檢查鼠標位置並調整彈出窗口(顯示/隱藏,定位)。 如果你有很多點會很慢,所以我使用空間網格並最初將數據點分配給網格單元格。 然后,您只需要檢查鼠標位置周圍網格單元格內的點。
我找不到更好的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.