使用QT做一个自己的图形编辑器,从QGraphicsView派生了自己的 GraphicView 类,在创建图形组件时调用setCursor改变光标形状: setCursor(Qt::CrossCursor),当光标移动到创建的 GraphicItem上时,会调用 setCursor 改变光标 形状: item->setCursor(Qt::SizeAllCursor),当光标移出 GraphicItem 时,会调用 item->unsetCursor() 恢复改变光标。之后理论上系统应该使用 Qt::CrossCursor 光标,但实际测试结果是系统使用了 默认光标 Qt::ArrowCursor。
最后参考链接 QGraphicsView下使用setCursor的坑 | lasyman的博客 的方法,将第一处代码改为:viewport()->setCursor(Qt::CrossCursor) 最终解决问题,在此作以记录。