qt c++ Qchart Linechart X축 에 날짜 데이터를 받고싶은데 표현이 잘 안됩니다.
-
안녕하세요. 현재 c++ 사용한지 6개월차 되는 초보 개발자입니다.
현재 DB에 데이터를 불러와서 보여주는 모니터링 시스템을 만들고 있습니다.
DB의 데이터를 기반으로 차트를 그리는 부분에서 현재 막혀서 골머리를 앓고 있습니다. Y축의 데이터는 잘 나오는데 X축의 날짜부분이 표시가 되질않습니다.
추후에는 캘린더를 이용해서 해당 년도 해당 월 해당 일에 해당하는 차트를 불러내는 것 까지 만드는게 목표입니다.
전체코드는 이렇습니다.
#include "chart.h"
#include "ui_chart.h"
#include <QtCharts/QChartGlobal>
#include <QtCharts/QChart>
#include <QtCharts>
#include <QtCore>
#include <QDateTime>#include <QtWidgets/QWidget>
#include <QtWidgets/QGraphicsWidget>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGraphicsGridLayout>
#include <QtWidgets/QDoubleSpinBox>
#include <QtWidgets/QGroupBox>
#include <QtCharts/QLineSeries>
#include <QtCharts/QtCharts>
#include "database.h"
#include <QSqlDatabase>
#include <QSqlError>
#include <QDebug>
#include <QSqlQuery>
#include <QDateTime>
#include <QMap>
#include <QGraphicsView>
#include <QChartView>
#include <QSqlRecord>
#include <QAbstractSeries>Chart::Chart(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Chart)
{
ui->setupUi(this);QLineSeries *series = new QLineSeries(); series->setName("chart"); QValueAxis *AxisY = new QValueAxis; QSqlQuery query; QCategoryAxis *xAxis = new QCategoryAxis(); QStringList categories; query.prepare("select time,SV from hmidata where time like '2022-05-03%'"); if(query.exec()){ int c = 1; while(query.next()) { categories << query.value(0).toString();
// xAxis->append(QString::number(query.value(query.record().indexOf("YEAR")).toInt()), d);
series->append(c,query.value(1).toDouble());
c++;qDebug() << c ; } } else { qDebug() << query.lastError(); } QChart *chart = new QChart(); QChartView *chartView = new QChartView(chart); chart->addSeries(series); xAxis->append(categories, 50); chart->setAxisX(xAxis, series); chart->legend()->hide(); chart->addAxis(xAxis, Qt::AlignBottom);
// chartView->chart()->setAxisX(xAxis, series);
xAxis->setTitleText("날짜");
chart->addAxis(AxisY, Qt::AlignLeft);
AxisY->setRange(10, 50);chart->setTitle("태양열 전압"); chartView->setRenderHint(QPainter::Antialiasing); this->setCentralWidget(chartView); this->resize(400, 300); chart->setAnimationOptions(QChart::SeriesAnimations); this->show(); this->showMaximized();
}
Chart::~Chart()
{
delete ui;
}이게 현재 DB 안의 데이터인데 TIME 부분을 쓰고싶은데 제대로 표현안되네요
문제의 차트입니다. x축이 제대로 표현이 안됩니다.
-