2017-11-02 14 views
1

棒グラフ形式を使用してQLabelウィジェットにデータをプロットしようとしています。グラフが作成された後は、QLabelに挿入するためにchartView-> grab()を使ってキャプチャします。この方法は円グラフで機能しますが、棒グラフでは子要素(QBarSeriesとQBarSet)は表示されません。次のようにQt5 - chartView-> grab()は子要素を取得しません

コードは次のとおり

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->ショー();

QBarSeriesデータを含むウィンドウがポップアップします。 grab()メソッドが子要素をキャプチャしていない理由についてのアイデアはありますか?

+0

SOのタイトルを変更する必要はありません。あなたの答えを正しいものとしてマークしてください。 – eyllanesc

答えて

0

Qtフォーラムでは、grabはQChart::SeriesAnimations設定のためにアニメーションの最初のフレームをキャプチャしています。それを削除して、問題を修正します。

関連する問題