У меня есть основной виджет в Qt, и этот виджет содержит QGraphicsView
, а внутри него QGraphicsScene
. В сцене я добавляю QGraphicsPixmapItem
s и QGraphicsTextItem
s. В основном виджете я обрабатываю QWidget::mouseDoubleClickEvent ( QMouseEvent * event )
, все мои элементы имеют установленные флаги:
mItem->setFlag ( QGraphicsItem::ItemIsMovable );
mItem->setFlag ( QGraphicsItem::ItemIsSelectable );
mItem->setFlag ( QGraphicsItem::ItemIsFocusable);
Поскольку я хочу перемещать элементы в сцене и выбирать их, а также хочу, чтобы при двойном щелчке главный виджет обрабатывал это. Когда я дважды щелкаю по QGraphicsTextItem
, он переходит к mouseDoubleClickEvent
в основном виджете, однако, когда я дважды щелкаю по элементу QGraphicsPixmap
, он поглощает двойной щелчок и не отправляет его в основной виджет. Также, когда флаг ItemIsFocusable
не установлен, QGraphicsTextItem
также поглощает событие двойного щелчка. Почему это происходит?.
Я не хотел реализовывать подкласс QGraphicsItem
s и хотел использовать уже определенные методы. Вот фото того, что я делаю:
QGraphicsPixmapItem
при двойном щелчке? Элементы выполняют свою реализацию по умолчанию: если вы не подклассируете их и не сделаете свою собственную реализацию. - person Thalia   schedule 04.03.2016