SuXuan3D 2017-08-28 08:03 采纳率: 0%
浏览 2553

QT作图问题,第一次运行正常,第二次崩溃

代码如下,画图是单独线程进行的,现在问题是第一次启动线程的时候是没有问题的,第二次程序就崩溃了

 void QTCurvePlotThread(LPVOID pParam)
{
    int argc = 1;
    char *argv[] = { "Qt" };
    static QApplication app(argc, argv);
    app.setQuitOnLastWindowClosed(true);

    QChart *charts[4] = { new QChart(), new QChart(), new QChart(), new QChart() };
    for(int k = 0; k < 8; k++)
    {
        //.. 向窗口中添加曲线
        QChart *chart = charts[k/2];

        QLineSeries *series = new QLineSeries();

        int offset = chart->series().count();
        for(int i = 0; i < 360; i++)
        {
            qreal x = offset * 20 + i;
            series->append(QPointF(i, qSin(2.0 * 3.141592 * x / 360.0)));
        }

        series->setName(QString("line " + QString::number(chart->series().size())));
        chart->addSeries(series);
        //.. 设置属性
        chart->setTitle("Zoom in/out example");
        chart->createDefaultAxes();
        chart->legend()->show();
        chart->legend()->setAlignment(Qt::AlignBottom);
        chart->setAnimationOptions(QChart::SeriesAnimations);
    }


    QSplitter *splitterMain = new QSplitter(Qt::Vertical, NULL/*app->widgetAt(0,0)*/);
    splitterMain->resize(720, 480);
    splitterMain->setOpaqueResize(true);
    splitterMain->setStretchFactor(1, 1);
    QChartView *view1 = new QChartView(charts[0], splitterMain);
    QChartView *view2 = new QChartView(charts[1], splitterMain);
    QChartView *view3 = new QChartView(charts[2], splitterMain);
    QChartView *view4 = new QChartView(charts[3], splitterMain);

    QGridLayout *m_mainLayout = new QGridLayout();
    m_mainLayout->addWidget(splitterMain, 0, 0, 1, 1);

    QWidget *window = new QWidget;
    window->setWindowTitle("CurvePloter");
    window->setLayout(m_mainLayout);
    window->show();


    app.exec();

    return;
}
  • 写回答

3条回答

  • devstone 2017-08-31 06:23
    关注

    1.从你的代码中没有看出问题来;
    2.至于你说的第一次启动线程,没有看到你怎么启动的;
    3.建议打几个断电,然后调试,看看程序时在那快奔溃了,这样也好找出问题;

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配