记录下qcharts绘制曲线遇到的坑

1.首先说明下,本文章只代表自己个人观点。
我实在想吐槽下qt,以前使用qchat绘制椭圆。我创建一个椭圆类,然后将椭圆类加入到view,然后添加数据根本没有问题。
今天做了下绘制曲线的,用同样的方法,创建一个椭圆类,然后添加到view,接着添加数据,结果根本不显示,找了半天不知道问题在哪,网上也没找到,最后我试下把数据先添加进去,然后在添加到view,就显示了。我TMD是真服。
最后看下代码:

QChartView *m_pChartView=new QChartView(this);
    QVBoxLayout *mainLayout=new QVBoxLayout(this);
    mainLayout->addWidget(m_pChartView);
    mainLayout->setMargin(0);
    mainLayout->setSpacing(0);
    this->setLayout(mainLayout);

    QLineSeries *m_pLineSeris = new QLineSeries(this);

//    m_pChartView->chart()->legend()->setAlignment(Qt::AlignBottom);
//    m_pChartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);
//    m_pChartView->chart()->setAnimationOptions(QChart::AllAnimations);
//    m_pChartView->chart()->layout()->setContentsMargins(0, 0, 0, 0);

    QValueAxis *m_pxAxis = new QValueAxis();
    QValueAxis *m_pyAxis = new QValueAxis();

    m_pLineSeris->append(0, 6);
    m_pLineSeris->append(2, 4);
    m_pLineSeris->append(3, 8);
    m_pLineSeris->append(7, 4);
    m_pLineSeris->append(10, 5);


    m_pChartView->chart()->addSeries(m_pLineSeris);




    m_pChartView->chart()->addAxis(m_pxAxis, Qt::AlignBottom);
    m_pChartView->chart()->addAxis(m_pyAxis, Qt::AlignLeft);


    m_pxAxis->setRange(0, 20);
    m_pyAxis->setRange(0, 50);

在这里插入图片描述
重要的事情说3遍。
qchart绘制曲线一定要先添加数据。在添加到view!!!!
qchart绘制曲线一定要先添加数据。在添加到view!!!!
qchart绘制曲线一定要先添加数据。在添加到view!!!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
非常感谢您的提问。这是一个很好的问题。这里提供一个简单的示例,用于使用PyQt6和QCharts绘制曲线。 ``` import sys from PyQt6.QtCore import Qt from PyQt6.QtGui import * from PyQt6.QtWidgets import QApplication, QMainWindow, QChartView, QValueAxis, QLineSeries, QVBoxLayout, QHBoxLayout, QWidget from PyQt6.QtCharts import QtCharts class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("PyQt6 QChart Example") # create chart and set general options self.chart = QtCharts.QChart() self.chart.setTitle("Chart Title") self.chart.setAnimationOptions(QtCharts.QChart.SeriesAnimations) # create xaxis and set general options axisX = QtCharts.QValueAxis() axisX.setLabelFormat("%d") axisX.setTitleText("X Axis Title") axisX.setTickCount(10) axisX.setRange(0, 10) # create yaxis and set general options axisY = QtCharts.QValueAxis() axisY.setLabelFormat("%.2f") axisY.setTitleText("Y Axis Title") axisY.setRange(0, 100) # create line series and add it to chart series = QtCharts.QLineSeries() series.setName("Line Series") # add data to line series series.append(0, 10) series.append(1, 20) series.append(2, 30) series.append(3, 40) series.append(4, 50) series.append(5, 60) series.append(6, 70) series.append(7, 80) series.append(8, 90) series.append(9, 100) # add series to chart self.chart.addSeries(series) # set xaxis and yaxis to chart self.chart.setAxisX(axisX, series) self.chart.setAxisY(axisY, series) # create vertical layout and chart view layout = QVBoxLayout() chartView = QChartView(self.chart) chartView.setRenderHint(QPainter.Antialiasing) # add chart view to layout layout.addWidget(chartView) # create horizontal layout and add widgets hbox = QHBoxLayout() widget = QWidget() widget.setLayout(hbox) # add layout to horizontal layout hbox.addLayout(layout) # set central widget of main window self.setCentralWidget(widget) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec()) ``` 这个示例创建了一个带有标题和x,y轴标签的图表。它使用QValueAxis来设置X和Y轴,并使用QLineSeries来绘制曲线。数据通过调用series.append()方法添加到曲线上。最后,QChartView用于绘制图表,并将其添加到主窗口中。 希望这个示例可以帮助你入门PyQt6和QCharts。如果您有任何其他问题,请随时问我。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油小杜(接qt定制功能,单模块开发等)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值