Слоты с QGraphicPixmapItem
Я создал класс, производный от QObject
а также QGraphicsPixmapItem
Моя цель состоит в том, чтобы отображать несколько различных изображений огня, чтобы сделать своего рода рисунок, поэтому я использую таймер и функцию подключения, но мои изображения не отображаются, и у меня появляется эта ошибка:
QObject::connect: No such slot QObject::animation()
И это мой код
class Fire: public QObject,public QGraphicsPixmapItem
{
public:
Fire: QObject(),QGraphicsPixmapItem(){
}
private:
void display() {
timer=new QTimer(this);
imageFire<<(QPixmap(":/feu1.png"))<<(QPixmap(":/feu2.png"))<<(QPixmap(":/feu3.png"))<<(QPixmap(":/feu4.png"))<<(QPixmap(":/feu5.png"));
connect(timer, SIGNAL(timeout()),this, SLOT(animation()));
timer->start(1000);
//image.load(":/feu1.png");
//this->setPixmap(image);
QPixmap image;
QList<QPixmap> imageFire;
QTimer *timer;
int i;
private slots:
void animation(){
/* foreach (QPixmap pix, imageFire) {
this->setPixmap(pix);
}*/
image=imageFire.at(i);
this->setPixmap(image);
i++;
if(i==imageFire.size()){
i=0;
}
}
};
Если я правильно понял, это потому, что QGrpahicPixmapItem
не наследуется от QObject
Итак, я попытался унаследовать мой класс Fire от QGraphicsObject
но дело в том, что этот класс не позволяет мне использовать setPixmap()
функция! Итак, как я могу пройти через эту проблему при использовании класса QGraphicPixmapItem??