当前位置: 技术问答>linux和unix
如何在QT中加入GIF动画,急!
来源: 互联网 发布时间:2015-12-21
本文导语: 我的代码如下: #include #include #include #include class mymainwindow:public QWidget { public: mymainwindow(); QLabel *lab_close_clicked; }; mymainwindow::mymainwindow() { setMinimumSize(200,220); setMaximumSize(200,220); QMov...
我的代码如下:
#include
#include
#include
#include
class mymainwindow:public QWidget
{
public:
mymainwindow();
QLabel *lab_close_clicked;
};
mymainwindow::mymainwindow()
{
setMinimumSize(200,220);
setMaximumSize(200,220);
QMovie *movie; lab_close_clicked = new QLabel("hello",this );
lab_close_clicked->setGeometry( QRect(10,0,34,177));
movie= new QMovie("up.gif");
lab_close_clicked->setMovie(movie);
movie->start();
}
int main(int argc,char **argv)
{
QApplication a(argc,argv);
mymainwindow w;
a.setMainWidget(&w);
w.show();
return a.exec();
}
编译后的错误如下:
[root@localhost test]# make
make: *** Warning: File `main.cpp' has modification time in the future
(2006-10-11 15:19:26 > 2006-10-09 09:31:06.67512)
g++ -c -pipe -Wall -W -O2 -march=i386 -mcpu=i686 -g -DGLX_GLXEXT_LEGACY
-fno-use-cxa-atexit -fno-exceptions -DQT_NO_DEBUG -I/usr/lib/qt-
3.1/mkspecs/default -I. -I. -I/usr/lib/qt-3.1/include -o main.o
main.cpp
main.cpp: In constructor `mymainwindow::mymainwindow()':
main.cpp:36: invalid conversion from `QMovie*' to `int'
main.cpp:36: initializing argument 1 of `QMovie::QMovie(int)'
main.cpp:37: no matching function for call to `QMovie::start()'
make: *** [main.o] Error 1
***********************************************************
请问各位大虾是什么原因?谢谢!请尽快回复
#include
#include
#include
#include
class mymainwindow:public QWidget
{
public:
mymainwindow();
QLabel *lab_close_clicked;
};
mymainwindow::mymainwindow()
{
setMinimumSize(200,220);
setMaximumSize(200,220);
QMovie *movie; lab_close_clicked = new QLabel("hello",this );
lab_close_clicked->setGeometry( QRect(10,0,34,177));
movie= new QMovie("up.gif");
lab_close_clicked->setMovie(movie);
movie->start();
}
int main(int argc,char **argv)
{
QApplication a(argc,argv);
mymainwindow w;
a.setMainWidget(&w);
w.show();
return a.exec();
}
编译后的错误如下:
[root@localhost test]# make
make: *** Warning: File `main.cpp' has modification time in the future
(2006-10-11 15:19:26 > 2006-10-09 09:31:06.67512)
g++ -c -pipe -Wall -W -O2 -march=i386 -mcpu=i686 -g -DGLX_GLXEXT_LEGACY
-fno-use-cxa-atexit -fno-exceptions -DQT_NO_DEBUG -I/usr/lib/qt-
3.1/mkspecs/default -I. -I. -I/usr/lib/qt-3.1/include -o main.o
main.cpp
main.cpp: In constructor `mymainwindow::mymainwindow()':
main.cpp:36: invalid conversion from `QMovie*' to `int'
main.cpp:36: initializing argument 1 of `QMovie::QMovie(int)'
main.cpp:37: no matching function for call to `QMovie::start()'
make: *** [main.o] Error 1
***********************************************************
请问各位大虾是什么原因?谢谢!请尽快回复
|
QT库需要增加对gif格式的支持, configure时增加-gif选项
setMovie需要的是QMove的引用, 你下面这样调用
QMovie movie("up.gif");
lab_close_clicked = new QLabel("hello",this );
lab_close_clicked->setGeometry( QRect(10,0,34,177));
lab_close_clicked->setMovie(movie);
setMovie需要的是QMove的引用, 你下面这样调用
QMovie movie("up.gif");
lab_close_clicked = new QLabel("hello",this );
lab_close_clicked->setGeometry( QRect(10,0,34,177));
lab_close_clicked->setMovie(movie);
|
main.cpp:36: invalid conversion from `QMovie*' to `int'
main.cpp:36: initializing argument 1 of `QMovie::QMovie(int)'
main.cpp:37: no matching function for call to `QMovie::start()'
这个出错信息已经给你答案了,首先你的QMovie::QMovie(int)构造函数的参数是一个int,你传入一个字符串
main.cpp:36: initializing argument 1 of `QMovie::QMovie(int)'
main.cpp:37: no matching function for call to `QMovie::start()'
这个出错信息已经给你答案了,首先你的QMovie::QMovie(int)构造函数的参数是一个int,你传入一个字符串
|
删了这个语句..
不需要start
不需要start
|
Qt默认安装不支持GIF。
./configure 的时候加上 -prefix /opt/qt-3.1.2 -qt-gif 就可以了。
./configure 的时候加上 -prefix /opt/qt-3.1.2 -qt-gif 就可以了。
|
楼上的楼上的说的是重新编译QT的源文件.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。