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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: график функции как отдельный объект  (Прочитано 4530 раз)
_Vitaliy_
Гость
« : Май 18, 2010, 18:07 »

Доброго времени суток.
Есть задача: на форме выводится несколько графиков функций, как сделать так чтобы "мышкой" можно было передвигать графики отдельно друг от друга, например по одной из осей?
Немного знаю qwt, если направление помощи будет в сторону QPainter тоже думаю разберусь.
В идеале необходимо:
1. слева вертикальная ось со своим масштабом + вправо график функции и так для каждого графика;
2. графики функций располагаются сверху вниз.
3. ось х (время) для всех общая.     
Записан
_Vitaliy_
Гость
« Ответ #1 : Май 18, 2010, 21:10 »

Не зря говорят: "... задаешь вопрос а через 5 минут сам находишь ответ...".
Смотреть нужно в сторону QGraphicsView, по крайней мере у Шлее я нашел в примерах и вроде подходит.
Код:
...
QGraphicsLineItem* fLineItem =
            scene.addLine(QLineF(100, 100, 200, 200), QPen(Qt::green, 3));
fLineItem->setFlags(QGraphicsItem::ItemIsMovable);
...
осталось только в цикле addLine подставлять свои значения...

но как заставить LineItem двигаться ТОЛЬКО по вертикали при перемещении "мышкой"?
Записан
White Owl
Гость
« Ответ #2 : Май 18, 2010, 21:36 »

но как заставить LineItem двигаться ТОЛЬКО по вертикали при перемещении "мышкой"?
Для рисования графиков наверное будет удобнее использовать потомка от QGraphicsPathItem.
В нем перехватить setPos() и занулять горизонтальную координату перед вызовом родительского метода.

А еще можно перехватить мышиные события у потомка QGraphicsScene и делать движение объектов вручную.
Записан
_Vitaliy_
Гость
« Ответ #3 : Май 19, 2010, 07:23 »

спасибо, будем пробовать...
Записан
BaltikS
Гость
« Ответ #4 : Май 19, 2010, 12:14 »

Лучше посмотреть на метод QGraphicsItem::itemChange. В Ассистенте написан пример кстати говоря по поводу ограничений перемещения...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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