我正在尝试将动画gif放入我的程序中。
但是,当我遵循正确的语法时
QMovie *hit1=new QMovie("BadExplosion.gif");
QLabel *processLabel=new QLabel(this);
processLabel->setMovie(hit1);
hit1->start();
中的
void TestApp::draw()
{
//this code and other drawing code here
}
我遇到了错误
错误C2664:'QLabel :: QLabel(QWidget *,Qt :: WindowFlags)':无法将参数1从'TestApp * const'转换为'QWidget *'
QLabel *processLabel=new QLabel(this);
有什么想法吗?谢谢!
编辑:TestApp是一个自定义类。
答案 0 :(得分:1)
如果TestApp
是自定义类,那么此代码无法正常工作,这是完全正常的。
Qt的每个UI元素都可以在构造时使用参数,即QWidget
作为父级。该父母将特别负责处理其子女删除。您应该在Qt文档(尤其是QWidget constructor
的文档)中阅读更多相关内容。
在您的情况下,您不应该将this
传递给QLabel构造函数。您必须传递另一个小部件,该小部件将成为此QLabel
个父级。
编译器会清楚地显示您收到的消息。它会等待QWidget
,但会改为上课(在任何时候都不会继承QWidget
)。