我遵循了以下 youtube 教程(成功)https://www.youtube.com/watch?v=MHn3ZTWcyXk&t=13m33s .我基本上是在尝试做与教程中完全相同的事情,但是这次是在一个更大的窗口中,其中已经包含了一堆小部件和东西。我在类构造函数中调用以下函数。但是,这不会在 QChartView 的 ui->graphview 中显示数据。
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;
我是一名优秀的程序员,十分优秀!