Я следовал следующему руководству YouTube (успешно) https://thewikihow.com/video_MHn3ZTWcyXk&t=13m33s. По сути, я пытаюсь сделать то же самое, что и в учебнике, но на этот раз в большем окне, которое уже содержит кучу виджетов и прочего. Я вызываю функцию ниже в конструкторе класса. Однако это не отображает данные в ui->graphview, который является QChartView.
void RecordWidget::setupGraph(){
QLineSeries *series = new QLineSeries();
series->append(0, 16);
series->append(1, 25);
series->append(2, 24);
series->append(3, 19);
series->append(4, 33);
series->append(5, 25);
series->append(6, 34);
// Create chart, add data, hide legend, and add axis
QChart *chart = new QChart();
chart->legend()->hide();
chart->addSeries(series);
chart->createDefaultAxes();
// Customize the title font
QFont font;
font.setPixelSize(18);
chart->setTitleFont(font);
chart->setTitleBrush(QBrush(Qt::black));
chart->setTitle("Barry Bonds HRs as Pirate");
// Change the line color and weight
QPen pen(QRgb(0x000000));
pen.setWidth(5);
series->setPen(pen);
chart->setAnimationOptions(QChart::AllAnimations);
// Change the x axis categories
QCategoryAxis *axisX = new QCategoryAxis();
axisX->append("1986",0);
axisX->append("1987",1);
axisX->append("1988",2);
axisX->append("1989",3);
axisX->append("1990",4);
axisX->append("1991",5);
axisX->append("1992",6);
chart->setAxisX(axisX, series);
// Used to display the chart
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
ui->graphView = chartView;
ui->graphView->show();
ui->graphView->setVisible(true);
}
Я бы попробовал:
ui->graphView->setChart(chart);
вместо
QChartView *chartView = new QChartView(chart);
ui->graphView = chartView;
ui->graphView
уже в макете, когда вы назначаете ui->graphView = chartView;
. Вы просто меняете указатель. Вместо этого вы должны изначально создать ui->graphView
как QChartView
Не устанавливайте свой graphView в качестве центрального виджета. Он должен быть в макете, который содержит остальную часть вашего пользовательского интерфейса. См.: doc.qt.io/qt-5/layout.html