首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt5 - chartView->grab()不捕获子元素

Qt5 - chartView->grab()不捕获子元素
EN

Stack Overflow用户
提问于 2017-11-03 02:57:37
回答 1查看 206关注 0票数 1

我正在尝试使用条形图格式在QLabel小部件中绘制数据。创建图表后,我使用chartView->grab()捕获它,以便插入到QLabel中。此方法适用于饼图,但对于条形图,不显示子元素(QBarSeries和QBarSet)。

代码如下:

代码语言:javascript
复制
QT_CHARTS_USE_NAMESPACE

QChartView* chartView = new QChartView();
chartView->setRenderHint(QPainter::Antialiasing);

QChart* chart = chartView->chart();

QBarSeries *series = new QBarSeries();

QBarCategoryAxis *categories = new QBarCategoryAxis();
QBarSet *set0 = new QBarSet("test");
set0->setBrush(Qt::blue);

for (int i = 0; i < 20; ++i) {
    set0->append(static_cast<double>(10-std::abs(10-i)));
    categories->append(QString::number(i));
}
series->append(set0);

chart->addSeries(series);
chart->setAnimationOptions(QChart::SeriesAnimations);
chart->setTitle("Plot Test");

chart->setAxisX(categories, series);
chart->createDefaultAxes();

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);


*m_chart = chartView->grab();

这是显示的图像。

如果相反,我这样做了:

chartView->show();

将弹出一个窗口,其中包含QBarSeries数据。你知道为什么grab()方法没有捕获子元素吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-03 20:36:01

在Qt论坛上回答:由于:QChart::SeriesAnimations设置,grab正在捕获动画的第一帧。移除它,可以解决问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47082720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档