我试着用以下代码在label上显示动画, 结果没用.但是以前在qt3的版本中可以使~
QMovie movie("xxxx.gif");
label->setMovie(movie);
movie.start();
后来又用了以前方法, 结果动画显示了一遍就不显示了,。。。请哪位高手帮忙测试一下, 看看问题出在哪里! 在此先谢过了哈.
#ifndef QTEST_H
#define QTEST_H
#include <QWidget>
class Movie;
class QLabel;
class Movie : public QWidget
{
Q_OBJECT
private:
QMovie *movie;
QLabel *label;
public:
Movie(QWidget *parent = 0);
};
#endif
============
qtest.cpp
============
#include <QtGui>
#include <iostream>
using namespace std;
#include "qtest.h"
Movie::Movie(QWidget *parent) : QWidget(parent)
{
setWindowTitle(tr("QMovie"));
resize(400, 250);
movie = new QMovie;
movie->setFileName("anim.gif");
movie->start();
label = new QLabel(this);
label->setMovie(movie);
connect(movie, SIGNAL(finished()), movie, SLOT(start()));
QList<QByteArray> l = QImageReader::supportedImageFormats();
for (int i=0; i < l.size(); i++) cout << QString(l
).toStdString() << endl;
/* Layout */
QGridLayout *layout = new QGridLayout(this);
layout->addWidget(label,0,0);
}
===================
main.cpp
===================
#include <QApplication>
#include "qtest.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Movie * movie = new Movie();
movie->show();
return app.exec();
}
[p:4][ 此贴被wuxian610在2005-11-04 13:09重新编辑 ]