Ich möchte Qt Widget mit QTimer (ohne Animationssystem) animieren und malen, also setze ich einen Timer und Startpunkt in enterEvent und im timercall slot mache ich die Grenze größer und so weiter ... aber es läuft einfach nicht und sagt Anwendung Ausfahrt mit dem Code 255:Problem mit dem Animieren von Qt Widget mit QTimer (Beenden mit Code 255)?
.h
#include <QtWidgets>
class QWidget;
class QPainter;
class QTimer;
class Sample : public QWidget
{
Q_OBJECT
public:
Sample(QWidget *parent = 0);
~Sample();
private:
QTimer *timer;
int weight=1, step=1;
protected:
virtual void paintEvent(QPaintEvent *);
virtual void enterEvent(QEvent *);
public slots:
void timercall();
};
CPP
Sample::Sample(QWidget *parent)
: QWidget(parent)
{
connect(timer,SIGNAL(timeout()),this,SLOT(timercall()));
}
Sample::~Sample() {}
void Sample::paintEvent(QPaintEvent *) {
QPainter painter(this);
painter.setPen(QPen(Qt::black,weight));
painter.setRenderHint(QPainter::Antialiasing);
QRect Rectangle=QRect (10,10,width()-20,height()-20);
painter.drawRect(Rectangle);
}
void Sample::enterEvent(QEvent *) {
timer->start(100);
}
void Sample::timercall() {
weight+=1;
if (step > 10) {
timer->stop();
}
step++;
repaint();
}
und dann, wenn ich diese Zeile aus meinem Code entfernen:
connect(timer,SIGNAL(timeout()),this,SLOT(timercall()));
in enterEvent der Anwendungsabsturz passiert ist.