错误 C2664:'App *const' 'QWidget *'
error C2664: 'App *const' to 'QWidget *'
我想把一个动画放到我的程序中。
但是,当我遵循正确的语法
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是一个自定义类如果TestApp
是自定义类,那么这段代码不起作用是完全正常的。
Qt的每个UI元素都可以在构造时接受一个参数,这是QWidget
,它将充当父元素。这个父进程将负责处理其子进程的删除。您应该在Qt文档(特别是QWidget constructor
的文档)中阅读更多关于此的信息。
在您的示例中,不应该将this
传递给QLabel构造函数。您必须传递另一个将成为此QLabel
父组件的小部件。
编译器用您得到的消息清楚地显示了这个问题。它等待QWidget
,但得到了你的类(它在任何时候都不继承QWidget
)。