Russian Qt Forum
Октябрь 03, 2024, 14:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QWT, привязка оси к времени.  (Прочитано 4124 раз)
microdimmer
Гость
« : Март 02, 2011, 18:18 »

Доброго времени суток!
Отображаю движущиеся графики с помощью QWT. Возник такой вопрос: нужно отобразить по оси Х время, посмотрел пример cpuplot,  там переопределяется класс QwtScaleDraw, прикручивается к QwtPlot и все нормально отображается.
Все хорошо,  есть одно "но", время там задаётся только один раз, в самом начале определения и далее оно просто отсчитывается от начальной точки.
Мне нужно чтобы каждой точке по оси Х соответствовало время,которое я получаю от внешнего источника и которое может идти с задержками или не по-порядку.
Иными словами мне нужно просто переопределить массив меток оси Х своими значениями.
В общем, если кто-то сталкивался, жду вашего совета, а то что-то в голову ничего не лезет.
Записан
twp
Гость
« Ответ #1 : Март 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);
    }
};
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.