А у меня курсор застревает так.
Я создал фильтр для QGraphicsItem, то есть унаследовался от QGraphicsItem и переопределил метод sceneEventFilter. Обьъект этого фильтра устанавливается сцене и каждому новому итему. В фильтре я обрабатываю нажатие левой кнопки мыши и устанавливаю по нему курсор:
bool FilterItem::sceneEventFilter(QGraphicsItem *watched, QEvent *event) {
if (event->type() == QEvent::GraphicsSceneMousePress) {
QGraphicsSceneMouseEvent *e = static_cast<QGraphicsSceneMouseEvent*>(event);
if (e->button() == Qt::LeftButton)
watched->setCursor(Qt::ClosedHandCursor);
return QGraphicsItem::sceneEventFilter(watched, event);
}
Так вот после того как фигура ClosedHandCursor установлена итему, она должна быть видна только, когда указатель мыши находится над этим итемом, согласно асистанту. Но, увы, даже если вывести указатель мыши за его пределы, фигура остается ClosedHandCursor, хотя должна вернуться обратно в ArrowCursor. Самое интересное, что иногда, работает как надо, причём это "иногда" непонятно от чего зависит - можно два раза запустить прогу, и увидеть два разных результата.
добавлено спустя 6 часов 48 минут: Дошли руки перейти на Qt 4.3.0 и эта проблема отпала вроде как. Похоже
Racheengel прав - действительно баг был, который в текущей версии пофиксили. Максим, попробуй в 4.3.0 собрать, любопытно, у тебя прокатит или нет.