Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: bixbit от Сентябрь 23, 2013, 21:22



Название: Qwt и координаты
Отправлено: bixbit от Сентябрь 23, 2013, 21:22

Никак не могу найти как получить координаты из QwtPlotPicker

(http://s019.radikal.ru/i617/1309/dc/66fe6e625fce.png)
Код:
        QwtPlotPicker * d_picker = new QwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft,
                 QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn,
               plot1->canvas());
           d_picker->setRubberBandPen(QColor(Qt::green));
           d_picker->setRubberBand(QwtPicker::CrossRubberBand);
           d_picker->setTrackerPen(QColor(Qt::black));



Название: Re: Qwt и координаты
Отправлено: madRoger от Сентябрь 24, 2013, 10:29
Поиск помогает. На форуме уже эта тема поднималась.
http://www.prog.org.ru/topic_24432_0.html (http://www.prog.org.ru/topic_24432_0.html)


Название: Re: Qwt и координаты
Отправлено: bixbit от Сентябрь 25, 2013, 23:08
Поиск помогает. На форуме уже эта тема поднималась.
http://www.prog.org.ru/topic_24432_0.html (http://www.prog.org.ru/topic_24432_0.html)
Спасибо.
Результат
Код:
class tQwtPlotPicker: public QwtPlotPicker
{
public:
    explicit tQwtPlotPicker( int xAxis, int yAxis, RubberBand rubberBand, DisplayMode trackerMode, QWidget * wgt):QwtPlotPicker(xAxis,yAxis,rubberBand,trackerMode, wgt )
    {
    }

    QPointF retPoint() const
    {
         return invTransform(trackerPosition() );
    }
};

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    tQwtPlotPicker * d_picker1;
   
    ...

}



MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ...

     d_picker1 = new tQwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft, QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn, plot1->canvas());
     d_picker1->setRubberBandPen(QColor(Qt::green));
     d_picker1->setRubberBand(QwtPicker::CrossRubberBand);
     d_picker1->setTrackerPen(QColor(Qt::black));
}
...
void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if (event->buttons() & Qt::RightButton)
    {

           qDebug()<<d_picker1->retPoint().x();
           qDebug()<<d_picker1->retPoint().y();

     }
}