私は学んでいQt
ます。Qtチュートリアルの第11章で、「ショットが空中にあるときに大砲の色を変更する」という演習を実現できていません。paintCannon関数の変更を実装することを選択しました(以下)。以下の私のコードの何が問題になっていますか?
void CannonField::paintCannon(QPainter &painter)
{
painter.setPen(Qt::NoPen);
if (autoShootTimer->isActive()){
std::cout << "in paintCannon yellow; " << std::endl;
// This gets called everytime `paintEvent` occurs.
// Please see the code in the web page (http://doc.trolltech.com/4.3/tutorial-t11-cannonfield-cpp.html) for this part.
painter.setBrush(Qt::yellow);
}else{
std::cout << "in paintCannon blue; " << std::endl;
painter.setBrush(Qt::blue);
}
painter.save();
painter.translate(0, height());
painter.drawPie(QRect(-35, -35, 70, 70), 0, 90 * 16);
painter.rotate(-currentAngle);
painter.drawRect(barrelRect);
painter.restore();
}
Qpainter
私は最初にのことを疑っsave
てrestore
、何か間違ったことをしているかもしれないので、私はそれらをコメントアウトしましたが、結局何も塗り直しませんでした。
ありがとう。