Здравствуйте, гость ( Вход | Регистрация )
|
quarz |
5.10.2010, 2:18
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0
|
Есть класс KeyboardItem - это itemGroup, содержащий клавиши клавиатуры.
При нажатии на клавиатуру определяю какая клавиша находилась под мышью и заменяю ее на нажатую. Еще у меня есть маркер, который представляет собой Item, рисующийся поверх клавиатуры. Его родителем является KeyboardItem Маркер находится всегда выше всех клавиш по оси z. Значит, при клике по нему, событие MousePressEvent должно в первую очередь приходить к маркеру, а не к клавиатуре. А получается так, что событие нажатия никогда не доходит до маркера. В чем я ошибся? |
|
|
|
![]() |
|
quarz |
5.10.2010, 11:54
Сообщение
#2
|
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0
|
Цитата(kwisp @ 5.10.2010, 10:51) Link return QWidget::keyPressEvent(event); есть это у тебя? да, я вызываю в обработчике QGraphicsItemGroup::mousePressEvent(event). Кстати, если маркер положить на сцену, не прописывая ему родителя, то все работает. Видимо дело в том, что у родителя (KeyboardItem) переопределено mousePressEvent. Но я же вызываю в нем QGraphicsItemGroup::mousePressEvent(event), значит событие должно передаваться и другим Item`ам на сцене, находящимся в этой точке, а оно почему-то не передается. |
|
|
|
quarz Events 5.10.2010, 2:18
kwisp Цитата(quarz @ 5.10.2010, 3:18) В чем я о... 5.10.2010, 9:51
quarz Попробую описать проще:
Есть класс, производный от... 5.10.2010, 13:28
igor_bogomolov Попробуй установить для группы свойство
setHandle... 5.10.2010, 13:46
quarz Спасибо, Игорь. Тоже нашел этот метод и как раз ис... 5.10.2010, 13:53
igor_bogomolov заменили на
Цитатаvoid QGraphicsItem::setFiltersC... 5.10.2010, 14:19![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 11.11.2025, 17:09 |