▍1. ZNodes
qt中提供了QGphicsView,QGraphicsScene,QGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实例:view,scene,item,然后通过各自的方法scene->addItem(item);view->setScene(scene);就可以达到类似下图的效果,想要进一步定制,则要继承QGraphicsItem或QGraphicsPixmapItem,然后重写paint()、boundingRect()等方法,此外如果还想要获取鼠标事件,重写mousePressEvent等事件就好了,注意,一旦重写了mousePressEvent方法,就以为了qt不会再自动处理item的任何press事件了,可以在你重写的mousePressEvent方法中最后添加QGraphicsItem::mousePressEvent(event);解决这个问题,就是说你获取到了鼠标事件,但是依然让qt处理这个鼠标事件。(QGphics View, QGraphics Scene, QGraphics Item and QGraphics PixmapItem are provided in qt. They are subclasses of QGraphics Item. Resolve the instances of creating them: view, scene, item, and then use their respective methods scene - > addItem (item); view - > setScene (scene); you can achieve the effect similar to the figure below. If you want to further customize, you need to inherit QGraphics Item or QGraphics Pixmap Item, and then rewrite paint (), boundingRect () and other methods, and if you want to do so. If you want to get mouse events, rewrite events like mousePressEvent. Note that once you rewrite the mousePressEvent method, you think that QT will no longer automatically handle any press events of item. You can finally add QGraphics Item:: mousePressEvent (event) to your rewritten mousePressEvent method to solve this problem. That is, you get the mouse event, but still let QT handle the mouse event.)