Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: ArtMD64 от Август 01, 2008, 21:03



Название: QGraphicsSceneMouseEvent
Отправлено: ArtMD64 от Август 01, 2008, 21:03
Здравствуйте.Проблема вот в чем-создана сцена и мне нужно вычислить позицию указателя мыши на сцене.я использую функцию d.buttonDownScenePos(Qt::LeftButton) где d переменная типа QGraphicsSceneMouseEvent.Но при запуске программы я нажимаю на сцену и ничего не происходит,тоесть значение координат не присваюваются.так собственно в чем вопрос...нужно ли переменную d связывать со сценой?заранее спасибо


Название: Re: QGraphicsSceneMouseEvent
Отправлено: ритт от Август 01, 2008, 21:35
> нужно ли переменную d связывать со сценой?
а откуда ты берёшь QGraphicsSceneMouseEvent? покажи код


Название: Re: QGraphicsSceneMouseEvent
Отправлено: pastor от Август 01, 2008, 21:37
Приведите свой код.

я так подозреваю, что вы просто объявили d как:

QGraphicsSceneMouseEvent d;

и далее

d.buttonDownScenePos(Qt::LeftButton);

Верно? Если верное, то это в корне неправильно (обчем говорит полное незнание Qt)!

Правильное решение:

1) см. методы:

Код:
virtual void mousePressEvent ( QGraphicsSceneMouseEvent * mouseEvent )
virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * mouseEvent )

их можно переобределить в классе-наследнике от QGraphicsScene.

2) Также можно установить эвент фильтр на QEvent::GraphicsSceneMousePress или QEvent::GraphicsSceneMouseRelease. См. QObject::installEventFilter