gpt4 book ai didi

c++ - 错误 C2664 : 'App *const' to 'QWidget *'

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:56 26 4
gpt4 key购买 nike

我正在尝试将动画 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
}

我遇到了错误

error 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)。

关于c++ - 错误 C2664 : 'App *const' to 'QWidget *' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24805795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com