crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Events
quarz
  опции профиля:
сообщение 5.10.2010, 2:18
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 3.11.2009
Пользователь №: 1202

Спасибо сказали: 5 раз(а)




Репутация:   0  


Есть класс KeyboardItem - это itemGroup, содержащий клавиши клавиатуры.
class KeyboardItem: public QObject, public QGraphicsItemGroup
{
  Q_OBJECT
...
private:
  void mousePressEvent(QGraphicsSceneMouseEvent *event);
...
};

void KeyboardItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
  //рисуем нажатую клавишу
  // ....
  QGraphicsItemGroup::mousePressEvent(event);
}


При нажатии на клавиатуру определяю какая клавиша находилась под мышью и заменяю ее на нажатую.
Еще у меня есть маркер, который представляет собой Item, рисующийся поверх клавиатуры. Его родителем является KeyboardItem

class MarkerItem: public QGraphicsSvgItem
{
...
private:
  void mousePressEvent(QGraphicsSceneMouseEvent *event);
...
}


Маркер находится всегда выше всех клавиш по оси z. Значит, при клике по нему, событие MousePressEvent должно в первую очередь приходить к маркеру, а не к клавиатуре. А получается так, что событие нажатия никогда не доходит до маркера.
В чем я ошибся?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
quarz
  опции профиля:
сообщение 5.10.2010, 11:54
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 3.11.2009
Пользователь №: 1202

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(kwisp @ 5.10.2010, 10:51) *
return QWidget::keyPressEvent(event);

есть это у тебя?


да, я вызываю в обработчике QGraphicsItemGroup::mousePressEvent(event).

Кстати, если маркер положить на сцену, не прописывая ему родителя, то все работает. Видимо дело в том, что у родителя (KeyboardItem) переопределено mousePressEvent. Но я же вызываю в нем QGraphicsItemGroup::mousePressEvent(event), значит событие должно передаваться и другим Item`ам на сцене, находящимся в этой точке, а оно почему-то не передается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 3.10.2024, 23:56