В настоящее время я работаю в диаграммах qt, а ось x отображает время во втором формате, но мне бы хотелось, чтобы значения оси x отображались в формате чч: мм: сс.мс. Есть ли способ изменить мою ось, чтобы она отображалась в этом формате?
Я следовал этому примеру: https://doc.qt.io/qt-5.11/qdatetime.html#toMSecsSinceEpoch
Но моя ось в настоящее время показывает только 0:00, что странно
Следующий метод правильно добавляет новые значения в график с помощью createDefaultAxes (), но по какой-то причине он не может правильно сделать это для моей другой пользовательской оси.
void RecordWidgetGraph::setBitrate (qint64 bitrate, qint64 duration){
// Appends new values and updates graph
if(bitrate != 0){
double timestampDouble = (double) duration /1000;
double bitrateDouble = (double) bitrate /1000000;
lineSeries->append(timestampDouble, bitrateDouble);
this->chart()->removeSeries(lineSeries);
this->chart()->addSeries(lineSeries);
this->chart()->createDefaultAxes();
QDateTimeAxis *axisX = new QDateTimeAxis;
axisX->setFormat("m:ss");
axisX->setTickCount(10);
this->chart()->addAxis(axisX, Qt::AlignBottom);
lineSeries->attachAxis(axisX);
this->chart()->scroll(chartCounter /5 , 0);
this->chart()->axisX()->setRange(timestampDouble - 10, timestampDouble + 2);
chartCounter++;
}
}
Вот как это выглядит в данный момент. Первая ось отображает время в s.ms, но DateTimeAxis отображает только 0: 00.
![enter image description here](https://i.stack.imgur.com/cbFas.png)
это мой метод setupGraph, который создает график.
QChart* RecordWidgetGraph::setupGraph(){
lineSeries = new QLineSeries();
timeSeries = new QTime();
// Create chart, add data, hide legend, and add axis
Chart * chart = new Chart();
chart->legend()->hide();
chart->addSeries(lineSeries);
chart->createDefaultAxes();
// Customize the title font
QFont font;
font.setPixelSize(3);
chart->setTitleFont(font);
chart->setTitleBrush(QBrush(Qt::black));
// chart->setTitle("Bitrate per second mbps");
// Change the line color and weight
QPen pen(QRgb(0x000000));
pen.setWidth(1);
lineSeries->setPen(pen);
this->setChart(chart);
// this->chart()->axisX()->setTitleText("Seconds");
this->chartCounter = 0;
bitrateTimer.start();
return(chart);
}