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