簡體   English   中英

Qt Graphics,向前或向后移動對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM