1
나는 Qt
을 배우고 있습니다. 나는 the exercise of chapter 11 of Qt tutorial을 깨닫지 못하고 있는데, "샷이 공중에있을 때 캐논의 색을 바꿔라." paintCannon 함수의 변경을 구현하기로 결정했습니다 (아래). 아래 내 코드의 문제점은 무엇입니까?QPainter가 색상을 변경하지 않습니다.
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
뭔가 잘못되었을 수 있습니다 의심 때문에, 나는 다시 그림 아무 것도 결국없는 그들을 밖으로 댓글을 달았습니다.
감사합니다.
그려지는 대포의 색은 무엇입니까? –
코드가하는 일은 무엇입니까? 이것이 어떻게 해야하는 것과 다른가? 예를 들어'PaintCannon blue '(또는'yellow')에서 출력하지만 다른 색상을 사용합니까, 아니면 무엇입니까? –
@ Jeremy Friesner 대포는 처음에 그려진 색 인 파란색으로 유지됩니다. – IsaacS