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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QwtScaleWidget  (Прочитано 12406 раз)
karpenko1989
Гость
« : Январь 23, 2012, 15:35 »

Добрый день. Требуется нарисовать шкалу

В библиотека есть класс для их отображения - QwtScaleWidget. Но у меня это сделать никак не получается.
Хотелось бы увидеть код для подключения данного виджета.
Записан
popper
Гость
« Ответ #1 : Январь 23, 2012, 19:00 »

А на каком этапе проблема? Приложение компилируется?
Посмотри в примерах использование. Ошибка также может быть в части размещения виджета в компоновщике
Записан
karpenko1989
Гость
« Ответ #2 : Январь 24, 2012, 07:20 »

Создаю виджет
Код:
    
myScale = new QwtScaleWidget;
myScaleDraw = new QwtScaleDraw;
myScale->setScaleDraw(myScaleDraw);
На форме появляется просто вертикальная линия. Но я никак немогу найти в документации, с помощью каких методов задать нижний и верхний предел.
Записан
alexman
Гость
« Ответ #3 : Январь 24, 2012, 11:18 »

void QwtPlot::setAxisScale(int axisId, double min, double max, double step = 0)
ну а там в исходниках глянь...
« Последнее редактирование: Январь 24, 2012, 11:21 от alexman » Записан
karpenko1989
Гость
« Ответ #4 : Январь 24, 2012, 12:20 »

setAxisScale задает шкалу, привязанную к графику, а мне нужно нарисовать только отдельную шкалу, без графика.
Записан
alexman
Гость
« Ответ #5 : Январь 24, 2012, 12:46 »

void QwtPlot::setAxisScale(int axisId, double min, double max, double step = 0) - задает диапазон и шаг для определенной шкалы график.

Цитировать
ну а там в исходниках глянь...
посмотри что внутри происходит, так как QwtPlot для шкал использует QwtScaleWidget...
Записан
karpenko1989
Гость
« Ответ #6 : Январь 25, 2012, 08:25 »

Хорошо, спасибо, я попытаюсь разобраться с этим.

Тогда, раз уж речь в теме идет про Qwt, попробую задать еще один вопрос.
Возможно ли средствами библиотеки Qwt отобразить на одном графике несколько кривых (до 9) с разным масштабом? Выглядеть это должно примерно так:
Записан
popper
Гость
« Ответ #7 : Январь 25, 2012, 11:19 »

Вроде бы можно установить две разные шкалы для левой и правой осей графика.
Для каждой кривой можно установить левую или правую шкалу методом
Код:
void QwtPlotItem::setYAxis (int axis); 
// axis = QwtPlot::yLeft or QwtPlot::yRight
Записан
karpenko1989
Гость
« Ответ #8 : Январь 25, 2012, 12:25 »

Вроде бы можно установить две разные шкалы для левой и правой осей графика.
Для каждой кривой можно установить левую или правую шкалу методом
Код:
void QwtPlotItem::setYAxis (int axis); 
// axis = QwtPlot::yLeft or QwtPlot::yRight


К сожалению так сделать не получается, ось Y рисуется только одна
Записан
alexman
Гость
« Ответ #9 : Январь 25, 2012, 14:22 »

Можно рисовать шкалы как элемент сцены...
Записан
karpenko1989
Гость
« Ответ #10 : Январь 25, 2012, 15:44 »

Можно рисовать шкалы как элемент сцены...
а можно поподробнее?, я с qt только начал потихоньку разбираться
Записан
alexman
Гость
« Ответ #11 : Январь 25, 2012, 16:39 »

1. Ну делаешь наследника от QwtPlotItem и рисуешь шкалу. В результате на сцене будет две шкалы (наследники от QwtPlotItem) и два графика.
2. Можно просто в лайаут добавить вертикальный QwtScaleWidget (*) | QwtPlot. Шкала из QwtPlot будет автоматом забиваться нужными данными, а содержимым (*) сам будешь управлять. Этот способ, наверное, проще будет чем 1.
Записан
iroln
Гость
« Ответ #12 : Январь 25, 2012, 19:15 »

Хорошо, спасибо, я попытаюсь разобраться с этим.

Тогда, раз уж речь в теме идет про Qwt, попробую задать еще один вопрос.
Возможно ли средствами библиотеки Qwt отобразить на одном графике несколько кривых (до 9) с разным масштабом?
Зачем такие извращения то? Больше двух масштабов никто не делает (по крайней мере я ни разу не видел), поэтому для этого и нет инструментов. Если нужно отображать на одних осях графики с разным масштабом, то нужно масштабировать значения самих графиков, а в легенде писать: График --1 x 10, График 2 x 100, и т.д.
Записан
Белый пони
Гость
« Ответ #13 : Январь 25, 2012, 22:48 »

Вот и Уве Ратман думает, что это извращение.
Но задачи бывают разные. Добрые люди сделали патч для более чем двух осей (в комментах пишут, что только для qwt 6.0.0) - http://sourceforge.net/tracker/?func=detail&aid=3297826&group_id=13693&atid=313693
Записан
karpenko1989
Гость
« Ответ #14 : Январь 26, 2012, 12:42 »

Вот и Уве Ратман думает, что это извращение.
Но задачи бывают разные. Добрые люди сделали патч для более чем двух осей (в комментах пишут, что только для qwt 6.0.0) - http://sourceforge.net/tracker/?func=detail&aid=3297826&group_id=13693&atid=313693
Огромное всем спасибо. Данный патч это то что мне нужно.
« Последнее редактирование: Январь 26, 2012, 13:34 от karpenko1989 » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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