Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: microdimmer от Март 02, 2011, 18:18



Название: QWT, привязка оси к времени.
Отправлено: microdimmer от Март 02, 2011, 18:18
Доброго времени суток!
Отображаю движущиеся графики с помощью QWT. Возник такой вопрос: нужно отобразить по оси Х время, посмотрел пример cpuplot,  там переопределяется класс QwtScaleDraw, прикручивается к QwtPlot и все нормально отображается.
Все хорошо,  есть одно "но", время там задаётся только один раз, в самом начале определения и далее оно просто отсчитывается от начальной точки.
Мне нужно чтобы каждой точке по оси Х соответствовало время,которое я получаю от внешнего источника и которое может идти с задержками или не по-порядку.
Иными словами мне нужно просто переопределить массив меток оси Х своими значениями.
В общем, если кто-то сталкивался, жду вашего совета, а то что-то в голову ничего не лезет.


Название: Re: QWT, привязка оси к времени.
Отправлено: twp от Март 02, 2011, 20:24
Основная идея в том чтоб конвертировать double в строку которая должна отобразиться. Это делается в виртуальном методе label
Вот пример как можно это сделать
Код:
class TimeScaleDraw: public QwtScaleDraw
{
public:
    TimeScaleDraw() {}

    virtual QwtText label(double v) const
    {
        QTime time((int)v, 0);
        QString format = QLocale::system().timeFormat(QLocale::ShortFormat);
        return time.toString(format);
    }
};