QGraphicsItem::setZValue
是 Qt 框架中 QGraphicsItem
类的一个成员函数,用于设置图形项的 Z 值(深度值)。Z 值决定了该图形项在场景中的绘制顺序。具有较高 Z 值的项会被绘制在较低 Z 值项的上方。
使用方法
void QGraphicsItem::setZValue(qreal z);
参数
z
: 要设置的新 Z 值,类型为qreal
(通常是双精度浮点数)。
示例代码
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsEllipseItem>
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QGraphicsScene scene;
QGraphicsEllipseItem *ellipse1 = new QGraphicsEllipseItem(0, 0, 100, 100);
ellipse1->setBrush(Qt::blue);
ellipse1->setZValue(1); // 设置较高的 Z 值
QGraphicsEllipseItem *ellipse2 = new QGraphicsEllipseItem(50, 50, 100, 100);
ellipse2->setBrush(Qt::red);
ellipse2->setZValue(0); // 设置较低的 Z 值
scene.addItem(ellipse1);
scene.addItem(ellipse2);
QGraphicsView view(&scene);
view.show();
return app.exec();
}
注意事项
- 默认情况下,所有图形项的 Z 值为 0。
- 更改 Z 值后,需要调用
scene()->update()
来强制更新场景以反映变化。
通过合理使用 setZValue
,你可以控制不同图形项之间的前后关系,从而实现复杂的视觉效果。
内容由零声教学AI助手提供,问题来源于学员提问