Название: Координаты курсора мыши в GraphicsView Отправлено: knf от Ноябрь 22, 2013, 21:22 Попытался вывести в label координаты мыши и вот что получилось:
Если узнавать координаты при нахождении курсора в главном окне, то все нормально Код А как узнать в самом graphicsView так, чтобы левый верхний угол был (0,0)? Название: Re: Координаты курсора мыши в GraphicsView Отправлено: mutineer от Ноябрь 23, 2013, 13:24 выводить scenePos
Название: Re: Координаты курсора мыши в GraphicsView Отправлено: knf от Ноябрь 23, 2013, 17:34 Если выводить scenePos то выводит непонятные координаты отрицательные.
Название: Re: Координаты курсора мыши в GraphicsView Отправлено: Fregloin от Ноябрь 23, 2013, 21:57 координаты на самом деле правильные, у вас viewPort сдвинут
Название: Re: Координаты курсора мыши в GraphicsView Отправлено: Dfxfufy от Декабрь 10, 2013, 11:28 Схожий вопрос. Виджет главного окна (StalkerScene) содержит объект QGraphicsScene* scene. Необходимо определить координаты клика относительно верхнего левого угла сцены.
В тексте, что приведен ниже, rht_test - координаты некоего объекта на сцене. Привязывать событие клика к самому объекту нельзя по условиям задачи. Нужно найти экранные координаты клика на сцене, чтобы сопоставить координаты случайно возникающих объектов внутри некоторой окрестности клика. Далее будет пересчет координат клика в пикселях в некие другие координаты. Не могу найти в описании класса сцены как увязать координаты клика с координатами на сцене с учетом ее скроллинга и изменением размеров главного окна. void StalkerScene::mousePressEvent(QMouseEvent *pe) { if(pe->buttons() && Qt::LeftButton) { qDebug() << "pos.x() = " << pe->pos().x() << " pos.y() =" << pe->pos().y(); qDebug() << " rht_test.m_dX = " << rht_test.m_dX << " rht_test.m_dY = " << rht_test.m_dY; m_rhtGKr = recalcCoord(double(pe->pos().x()),double(pe->pos().y())); emit signalTDM(); } } RHT StalkerScene::recalcCoord(double _x, double _y) { RHT rhtGsKr; double x = _x - scene->sceneRect().topLeft().x(); double y = _y - scene->sceneRect().topLeft().y(); rhtGsKr.m_dX = getRightTop().m_dX - y*m_dWidthScale; rhtGsKr.m_dY = getLeftBottom().m_dY + x*m_dHeightScale; rhtGsKr.m_dZ = 0; return rhtGsKr; } Название: Re: Координаты курсора мыши в GraphicsView Отправлено: _OLEGator_ от Декабрь 10, 2013, 14:57 Код
Название: Re: Координаты курсора мыши в GraphicsView Отправлено: Dfxfufy от Декабрь 10, 2013, 18:06 Спасибо. Попробую :)
|