你的item的继承方式的实现函数不完整,要想移动shape()函数也要重写。
其实你既然从QGraphicsPolygonItem继承,就不用考虑那么多了,QGraphicsPolygonItem把需要实现的所有虚拟函数都已经实现了,你只要在你的构造函数里加一句setPolygon(QRectF(-25,-25,50,50));然后在paint函数里先调用QGraphicsPolygonItem::paint(painter,option,widget);接着加入画文本的代码 就够了,其他代码都是多余的而且是碍事的。