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