Qwt. добавление мышью и перетаскивание маркера

Модератор: Модераторы разделов

vipermagi
Сообщения: 83
ОС: AgiliaLinux

Qwt. добавление мышью и перетаскивание маркера

Сообщение vipermagi »

Есть QwtPlot и есть вот такой маркер:

Код: Выделить всё

QwtPlotMarker* m = new QwtPlotMarker();
    m->setSymbol( QwtSymbol( QwtSymbol::Ellipse, Qt::gray, QPen(Qt::blue), QSize( 8, 8 ) ) );
    m->setValue( QPointF( 400, 600 ) );
    m->attach( ui->qwtPlot );


Во первых совсем не понятно, как маркер перетаскивать. Во вторых немного меньше не понятно, как такие маркеры добавлять на QwtPlot.

Пытался разобраться с примером из event_filter, но как-то там всё нагромождено и требует побольше времени, а оно у меня поджимает. Ещё читал, что нужно координаты какие-то конвертировать при переопределении событий, а то работать не будет.

Кто-нибудь может толково объяснить?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Qwt. добавление мышью и перетаскивание маркера

Сообщение NickLion »

Ну, так в event_filter есть, что Вы хотите. Смотрите canvaspicker.cpp, там кода не так уж много. Суть в том, что на QwtPlot вешается отдельный объект, который слушает сообщения и обрабатывает их. Методы select и move(By) занимаются выбором точки кривой и её передвижением. Для конвертирования координат используются QwtPlot::transform и QwtPlot::invTransform.
Спасибо сказали: