Могу ли я сделать отображение по оси X в формате чч: мм: сс.мс? - PullRequest
0 голосов
/ 11 июня 2019

В настоящее время я работаю в диаграммах 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

это мой метод 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);


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...