Russian Qt Forum
Ноябрь 23, 2024, 10:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать QGraphicsObject(Item) "прозрачным" для мыши?  (Прочитано 5336 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Январь 26, 2012, 11:55 »

Нужно расположить полупрозрачный прямоугольник над другими элементами так, что бы он отображался, но все события мыши игнорировал и пропускал через себя элементам, которые расположены под ним. Можно ли этого добиться?
Записан
fabricant
Гость
« Ответ #1 : Февраль 13, 2012, 11:51 »

http://www.prog.org.ru/topic_20393_0.html
вроде на эту тему топик
Записан
artiom_kh
Гость
« Ответ #2 : Март 02, 2012, 12:15 »

перегрузи QGraphicsItem::shape в таком виде:
Код
C++ (Qt)
class MyItem : public QGraphicsItem
{
public:
  virtual QPainterPath shape( void ) const { return QPainterPath(); }
};
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #3 : Октябрь 26, 2013, 01:18 »

Работает частично.
Короче суть такая, при копировании элементов на сцене я их клонирую, и клоны добавляю в группу. Потом при двидении мыши я перемещаю эту группу предвариетльно отцентрировав. при нажатии мыши группа должна удалиться, а из буфера должны вставиться новые. так вот, если например выделено два квадрата, они находятся друг от друга на некотором расстоянии и я вожу мышью, потом нажимаю кнопку - сцена отлавливает событие. Если же допустим в группе только один элемент и при нажатии мышью клик приходится на этот дочерний элемент - сцена не получает событие. пробовал вышеизложенные методы - не работают.
Записан
AlFoX
Гость
« Ответ #4 : Октябрь 26, 2013, 05:01 »

item->setFlag(QGraphicsItem::ItemIsSelectable, false);
« Последнее редактирование: Октябрь 26, 2013, 05:05 от AlFoX » Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #5 : Октябрь 26, 2013, 10:02 »

тоже опробовано - не работает...
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #6 : Октябрь 26, 2013, 10:15 »

разобрался, внутренняя логика актера сцены тупит, изза того что клик фактически приходится на клона элемента, но он не зарегестрирован. буду проверять на принадлежность к группе. поидее должно сработать. но все равно, сцена не получает сообщение что клик сделан по группе, а именно по элементу.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 23.