[英]Qt Graphics, Move an object forward or backward
我有兩個對象:CQWater和CQTank。 如果他的職位相同,我的CQTank將消失。 我應該怎么做才能使坦克前進。
CQWater::CQWater( QGraphicsScene *scena )
{
// drew the rect
setPixmap(QPixmap(":/new/prefix1/images/woda.png"));
setTransformOriginPoint(50,50);
setRotation(180);
woda = new CWater();
setPos(woda->x, woda->y);
scena->addItem(this);
}
罐:
CQTank::CQTank( QGraphicsScene *scena )
{
czolg = new CTank();
setPos(czolg->x, czolg->y);
scena->addItem(this);
}
QRectF CQTank::boundingRect() const
{
qreal adjust = 0.5;
return QRectF(-18 - adjust, -22 - adjust,
36 + adjust, 60 + adjust);
}
QPainterPath CQTank::shape() const
{
QPainterPath path;
path.addRect(-10, -20, 20, 40);
return path;
}
void CQTank::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->setBrush(Qt::yellow);
painter->drawEllipse(-10, -10, 20, 20);
}
我不知道如何向前或向后移動對象。
您必須使用Z值屬性,如文檔所述 :
無效的QGraphicsItem :: setZValue(qreal z)
將項目的Z值設置為z。 Z值確定同級(相鄰)項的堆疊順序。 Z值較高的同級項將始終被繪制在Z值較低的另一同級項的頂部。
如果恢復Z值,則物料的插入順序將決定其堆疊順序。
Z值不會以任何方式影響項目的大小。
默認的Z值為0。
相對於另一個較大,將顯示在上方,否則將顯示在下方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.