Qgraphicsscenehoverevent только размножается наиболее qgraphicsitemC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Qgraphicsscenehoverevent только размножается наиболее qgraphicsitem

Сообщение Anonymous »

Я использую два элемента: «itemimage», которые унаследовали qgraphicsitem и «itemdrawing», который наследует qgraphicspixmapitem.
Оба элемента создаются в конструкторе Mainwindow, добавленная сцена со сценой-> additem () < / Код>. < /p>

Код: Выделить всё

MyWindow::MyWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MyWindowClass())
, _scene(new QGraphicsScene(this))
, _item_drawing(new ItemDrawing())
, _item_image(new ItemImage())
{
...
_scene->addItem(_item_drawing);
_scene->addItem(_item_image);
ui->view->setScene(_scene);
}
и оба элемента Calls setaccepthoverevents (true); в их конструкторе, повторный размер hoverenterevent и hovermoveevent ,
Кроме Graphics View и называется QgraphicsView :: MouseMoveEvent .

Код: Выделить всё

/* ItemImage */
ItemImage::ItemImage(QGraphicsItem* parent)
: QGraphicsItem(parent)
{
setAcceptHoverEvents(true);
setFlags(ItemIsSelectable | ItemIsMovable);
}

void ItemImage::hoverMoveEvent(QGraphicsSceneHoverEvent* event)
{
...
QGraphicsItem::hoverMoveEvent(event);
}

/* ItemDrawing */
ItemDrawing::ItemDrawing(QGraphicsItem* parent)
: QGraphicsPixmapItem(parent)
, _temp_measure()
{
setZValue(1);
setTransformationMode(Qt::SmoothTransformation);
setShapeMode(QGraphicsPixmapItem::BoundingRectShape);
setAcceptHoverEvents(true);
}

void ItemDrawing::hoverMoveEvent(QGraphicsSceneHoverEvent* event)
{
...
QGraphicsItem::hoverMoveEvent(event);
}

/* GraphicsView which inherits QGraphicsView */
void GraphicsView::mouseMoveEvent(QMouseEvent* e)
{
...
QGraphicsView::mouseMoveEvent(e);
}
< /code>
Я хочу получить пари ... Событие < /code> на обоих элементах, которые перекрываются в одних и тех же координатах.
Пока только самый высокий элемент Z-порядка получает Событие (то есть ItemDrawing, которое называется setzValue (1) 
). Если вывести Itemimage из ItemDrawing, ItemImage также получит события падения. Strong> мой вопрос: нет ли другого способа получить события падения на обоих элементах, которые перекрываются в одних и тех же координатах? о распространении событий между Два пункта, у которых нет общего родителя.
и я посмотрел на реализацию QT qgraphicsceneprivate :: dispatchhoverevent < /code>, но, похоже, это не распространяет событие всем пунктам, расположенным под мышкой. /p>
Так что мой вывод заключается в том, что для оба элемента невозможно получить события, но я не уверен, прав ли я или что я что -то упускаю. < /p>

Подробнее здесь: https://stackoverflow.com/questions/794 ... aphicsitem
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отслеживание QGraphicsItem поверх видео
    Anonymous » » в форуме C++
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Как ограничить область в QGraphicsScene, куда можно перемещать пользовательский QGraphicsItem?
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Позиция QGraphicsItem после измененияboundingRect
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Дрожание/дрожание при столкновении QGraphicsItem
    Anonymous » » в форуме C++
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Получить размер QgraphicsView от QGraphicSitem
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»