cabana: fix chart background issue in live mode (#27793)

* fix background

* Update tools/cabana/chartswidget.cc

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
This commit is contained in:
Dean Lee
2023-04-04 04:05:49 +08:00
committed by GitHub
parent 7c7347a9e6
commit ea91532ac1
2 changed files with 8 additions and 2 deletions
+7 -2
View File
@@ -358,6 +358,7 @@ bool ChartsWidget::event(QEvent *event) {
case QEvent::WindowDeactivate:
case QEvent::FocusIn:
case QEvent::FocusOut:
case QEvent::Leave:
showValueTip(-1);
break;
default:
@@ -618,7 +619,7 @@ void ChartView::updateSeries(const cabana::Signal *sig) {
}
}
updateAxisY();
resetChartCache();
chart_pixmap = QPixmap();
}
// auto zoom on yaxis
@@ -874,9 +875,9 @@ void ChartView::paintEvent(QPaintEvent *event) {
const qreal dpr = viewport()->devicePixelRatioF();
chart_pixmap = QPixmap(viewport()->size() * dpr);
chart_pixmap.setDevicePixelRatio(dpr);
chart_pixmap.fill(palette().color(QPalette::Base));
QPainter p(&chart_pixmap);
p.setRenderHints(QPainter::Antialiasing);
drawBackground(&p, viewport()->rect());
scene()->setSceneRect(viewport()->rect());
scene()->render(&p);
}
@@ -891,6 +892,10 @@ void ChartView::paintEvent(QPaintEvent *event) {
}
}
void ChartView::drawBackground(QPainter *painter, const QRectF &rect) {
painter->fillRect(rect, palette().color(QPalette::Base));
}
void ChartView::drawForeground(QPainter *painter, const QRectF &rect) {
// draw time line
qreal x = chart()->mapToPosition(QPointF{cur_sec, 0}).x();
+1
View File
@@ -91,6 +91,7 @@ private:
void resetChartCache();
void paintEvent(QPaintEvent *event) override;
void drawForeground(QPainter *painter, const QRectF &rect) override;
void drawBackground(QPainter *painter, const QRectF &rect) override;
std::tuple<double, double, int> getNiceAxisNumbers(qreal min, qreal max, int tick_count);
qreal niceNumber(qreal x, bool ceiling);
QXYSeries *createSeries(SeriesType type, QColor color);