首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用'QtCharts::QLineSeries::append(int&,Date&)没有匹配的函数

调用'QtCharts::QLineSeries::append(int&,Date&)没有匹配的函数
EN

Stack Overflow用户
提问于 2020-03-18 01:59:31
回答 1查看 126关注 0票数 1

m_total_hour_series->append(pair.first, pair.second);这一行是问题的根源。错误消息显示:没有匹配的函数用于调用'QtCharts::QLineSeries::append(int&,Date&)‘

我已经查看了折线图的示例,并查找了附加的日期数据,但都无济于事。

我正在尝试从数据库中的数据制作折线图。我正在传递该系列的值的对列表。我的window.cpp文件具有以下变量:

代码语言:javascript
复制
QLineSeries* m_total_hour_series;
QChart* m_total_hour_chart;
QDateTimeAxis* m_total_hour_axis_x;
QValueAxis* m_total_hour_axis_y;
QChartView* m_total_hour_chart_view;

我的model.cpp文件包含以下代码:

代码语言:javascript
复制
QList<QPair<int,QDateTime>> ScannerModel::GetTotalHourSeries()
{
    QList<QPair<int,QDateTime>> total_hour_series;
    QString query_string;
    QDateTime intervals;
    QSqlDatabase db = QSqlDatabase::database(m_database_connection);
    QList<QPair<int,QDateTime>> graph_point;

    query_string =  QString("SELECT COUNT(BagId) AS num_bags, ");
    query_string += QString("   sec_to_time(time_to_sec(ScannedOn) - time_to_sec(ScannedOn)%(15*60)) AS intervals ");
    query_string += QString("FROM Bag ");
    query_string += QString("WHERE ScannedOn > date_sub(now(), INTERVAL 3 HOUR) ");
    query_string += QString("GROUP BY intervals ");

    QSqlQuery query(query_string, db);

    if (query.size() > 0)
    {
        while (query.next())
        {
            graph_point.first = query.value(0).toInt();
            intervals = query.value(1).toDateTime();
            intervals.addSecs(m_time_zone.offsetFromUtc(intervals));
            graph_point.second = intervals;
            total_hour_series->append(graph_point);
         }
        qApp->processEvents();
    }
    return (total_hour_series);
}

我的window.cpp文件包含以下代码:

代码语言:javascript
复制
void ScannerWindow::UpdateChartTotalHour()
{
    QList<QPair<int,QDateTime>> listOfPairs;
    m_total_hour_series->clear();

    listOfPairs = m_model->GetTotalHourSeries();
    for (int i = 0; i < listOfPairs.size(); i++)
    {
        QPair<int, QDateTime> pair = listOfPairs.at(i);
        m_total_hour_series->append(pair.first, pair.second);
    }
    m_total_hour_chart->addSeries(m_total_hour_series);
    qApp->processEvents();

    m_total_hour_axis_x->setTickCount(12);
    m_total_hour_axis_x->setFormat("HH:mm");
    m_total_hour_chart->addAxis(m_total_hour_axis_x, Qt::AlignBottom);
    m_total_hour_series->attachAxis(m_total_hour_axis_x);

    m_total_hour_axis_y->setLabelFormat("%i");
    m_total_hour_chart->addAxis(m_total_hour_axis_y, Qt::AlignLeft);
    m_total_hour_series->attachAxis(m_total_hour_axis_y);
}

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-03-18 05:27:05

我在QDateTimeAxis上搜索过。答案是使用.toMSecsSinceEpoch()。这是站点: doc.qt.io/qt-/qdatetimeaxis.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60727825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档