QObjectandから派生するクラスを作成しましたQGraphicsPixmapItem。私の目標は、複数の異なる火の画像を表示して一種の gif を作成することなので、タイマーと接続機能を使用しますが、画像が表示されず、次のエラーが発生します。
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 クラスを使用しているときに、どうすればこの問題を解決できますか??