У меня есть матрица QGraphicsItem в QGraphicsScene, и когда я щелкаю элемент, он меняет его цвет.Это реализовано с mousePressEvent()
.Я хочу иметь возможность щелкать и удерживать, а затем навести курсор на другие объекты QGraphicsItem и изменить их цвет, следовательно, вызвать их mousePressEvent()
.
Проблема в том, что из-за мыши, схватившей первый элемент, я нажимаю "сохраняет все события и hoverEnterEvent()
не срабатывает.Я попытался добавить ungrabMouse()
к mousePressEvent()
, но это не помогло.
Я думаю, что одним из решений было бы сделать QGraphicsitem способным к перетаскиванию и использовать для этого функции перетаскивания QT.На самом деле у меня есть это:
void dragEnterEvent(QGraphicsSceneDragDropEvent *event)
{
changeColor();
}
, и когда я перетаскиваю некоторый текст из приложения поверх элементов, он работает так, как я хочу, но не когда я «перетаскиваю» QGrahphicsItem.
такое единственное решение, позволяющее сделать QGraphicsItem перетаскиваемым, чтобы иметь возможность вызывать события при наведении на них мыши с нажатой кнопкой мыши?