Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: iukash от Апрель 09, 2010, 13:45



Название: QGraphicsSceneHoverEvent как обработать событие наведения?
Отправлено: iukash от Апрель 09, 2010, 13:45
Не могу обработать событие наведение мыши, все клики перемещение, отпускание кнопок обработал переопределив виртуальные функции у QGraphicsItem. А как обработать наведение мыши понять не могу. Нашел QGraphicsSceneHoverEvent  в документации, делаю
Цитировать
QPointF point=QGraphicsSceneHoverEvent::pos();
или так
Цитировать
float x=QGraphicsSceneHoverEvent::pos().x();
а он мне
Цитировать
main.cpp:15: error: cannot call member function 'QPointF QGraphicsSceneHoverEvent::pos() const' without object
Что делать? Как обработать событие наведение мыши?


Название: Re: QGraphicsSceneHoverEvent как обработать событие наведения?
Отправлено: GreatSnake от Апрель 09, 2010, 14:36
void QGraphicsItem::setAcceptHoverEvents ( bool enabled )


Название: Re: QGraphicsSceneHoverEvent как обработать событие наведения?
Отправлено: iukash от Апрель 09, 2010, 17:15
void QGraphicsItem::setAcceptHoverEvents ( bool enabled )

Блин, я по ходу вообще тупой. И что с этим
Цитировать
void QGraphicsItem::setAcceptHoverEvents ( bool enabled )
делать?
 ???


Название: Re: QGraphicsSceneHoverEvent как обработать событие наведения?
Отправлено: ieroglif от Апрель 09, 2010, 17:38
void QGraphicsItem::setAcceptHoverEvents ( bool enabled )

Блин, я по ходу вообще тупой. И что с этим
Цитировать
void QGraphicsItem::setAcceptHoverEvents ( bool enabled )
делать?
 ???
да, прости, но, по ходу, ты вообще тупой.
делать тебе надо следующее:
1. выучить английский (что бы перевести слова set Accept Hover и Events и понять в чём смысл).
2. привыкнуть сразу лезть в документацию, если тебе дали что-то непонятное и читать там про это самое. (кстати, для того что бы нормально читать документацию - тебе надо выучить английский).


Название: Re: QGraphicsSceneHoverEvent как обработать событие наведения?
Отправлено: iukash от Апрель 09, 2010, 20:08
Цитировать
выучить английский
С радостью, но это не сделать за пару недель, заказал книгу, буду учить, но пока в нем ноль (в школе и институте учил немецкий)! А объяснять я никого не заставляю, не хочешь не пиши!


Название: Re: QGraphicsSceneHoverEvent как обработать событие наведения?
Отправлено: iukash от Апрель 09, 2010, 20:18
Цитировать
выучить английский
С радостью, но это не сделать за пару недель, заказал книгу, буду учить, но пока в нем ноль (в школе и институте учил немецкий)! А объяснять я никого не заставляю, не хочешь не пиши!
Цитировать
что бы перевести слова set Accept Hover и Events
вот что дал переводчик
Цитировать
набор Принимает События Парения
ну и что я должен был понять?


Название: Re: QGraphicsSceneHoverEvent как обработать событие наведения?
Отправлено: Homo_Ludenus от Апрель 12, 2010, 11:06
Дословный перевод зло.

void QGraphicsItem::setAcceptHoverEvents ( bool enabled )

Если enabled равно true, этот элемент будет принимать события перемещения над ним курсора мыши; в противном случае он будет игнорировать их. По-умолчанию элементы не принимают данные события.

События перемещения мыши доставляются в том случае, когда нет других элементов, обладающих фокусом ввода мыши. Они посылаются когда курсор мыши входит в область элемента, когда он перемещается внутри его области и когда он её покидает. События перемещения мыши обычно используются для подсветки элемента когда на него наводится курсор и для отслеживания курсора мыши когда он находится над элементом (эквивалентноQWidget::mouseTracking).

Элементы-родители получают события входа курсора мыши в область элемента прежде потомков и событие выхода курсора за область элемента после них. Элемент не получает событие выхода за область элемента если курсор переходит в область другого потомка; он не получит его пока курсор не выйдет за область, включающую области всех его потомков.

Если родитель обрабатывает события потомков (setHandlesChildEvents()), он будет получать события перемещения мыши, перемещения и бросания когда переходит от одного дочернего элемента к другому, но он не получить ни события входа в область элемента и выхода за неё, ни события начала и окончания перетаскивания от имени его потомков.

QGraphicsWidget с декорацией окна будет принимать события перемещения мыши независимо от значения acceptHoverEvents().

Эта функция была введена в Qt 4.4.


Название: Re: QGraphicsSceneHoverEvent как обработать событие наведения?
Отправлено: iukash от Апрель 12, 2010, 22:03
Homo_Ludenus спасибо, но я уже разобрался, а английский начал учить, не все сразу!