QGraphicsLayoutItem学习记录

12/12/2021 Qt

# setGraphicsItem

当你继承自QGraphicsLayoutItem和QGraphicsObject或者QGraphicsWidget的时候,构造函数里不要忘记

setGraphicsItem(this);
1

否则,你可能发现没有任何东西显示。

# setParent

QWidget的setParent后,子控件会显示在父控件上,并且父控件析构时,会析构子控件列表里的所有控件。

QGraphicsItem的setParent,也会析构子控件,但是好像并不能让子控件显示在父控件之上。

见setParentItem

# setParentItem

setParentItem后,父控件会把子控件放在显示树中,显示在父控件上

见setPos

# setPos

当控件没有parentItem的时候setPos会定位到scene()中。

当控件有parentItem时,setPos会定位到父控件中。

当父控件移动时,因为setPos定位到父控件中,子控件也会相对一起移动。如果子控件在QGraphicsLauoyt中,默认就setParentItem

https://github.com/suncaiyu/Graph-Link/tree/main/MyNodeGraph