gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:54:44 25 4
gpt4 key购买 nike

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

代码如下:

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();

这是显示的图像。

enter image description here

如果相反,我会:

chartView->show();

弹出一个窗口,其中包含 QBarSeries 数据。关于为什么 grab() 方法不捕获子元素有什么想法吗?

最佳答案

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

关于c++ - Qt5 - chartView->grab() 不捕获子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47082720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com