Meine zweite Frage beschäftigt sich mit
QPainter painter(this);
painter.drawText(100, 200, tr("hallo") );
Warum wird der Text nur in der paintEvent-Funktion gezeichnet und nicht wenn man Funktionskörper in den Kontruktor packt? Müsste doch das Selbe sein?!
Code: Alles auswählen
CannonField::CannonField(QWidget *parent)
: QWidget(parent)
{
currentAngle = 45;
setPalette(QPalette(QColor(250, 250, 200)));
setAutoFillBackground(true);
QPainter painter(this);
painter.drawText(100, 200, tr("hallo") );
}
void CannonField::setAngle(int angle)
{
if (angle < 5)
angle = 5;
if (angle > 70)
angle = 70;
if (currentAngle == angle)
return;
currentAngle = angle;
update();
emit angleChanged(currentAngle);
}
void CannonField::paintEvent(QPaintEvent * )
{
QPainter painter(this);
painter.drawText(200, 200, tr("Angle = ") + QString::number(currentAngle));
}