gpt4 book ai didi

linux - 在 Linux 中对 '(QPalette)()' Qt4 的调用不匹配

转载 作者:太空宇宙 更新时间:2023-11-04 09:32:46 25 4
gpt4 key购买 nike

当我在 Ubuntu14.04 中使用 Qt4.8.6 编译 QtCreator3.3.2 中的示例代码时,出现以下错误:

videowidget.cpp:19: error: no match for call to '(QPalette) ()'
palette = palette();
^

在这段代码中:

VideoWidget::VideoWidget(QWidget *parent) : QWidget(parent),surface(0)
{
setAutoFillBackground(false);
setAttribute(Qt::WA_NoSystemBackground,true);
setAttribute(Qt::WA_PaintOnScreen,true);

palette = this->palette();//here's the error
palette.setColor(QPalette::Background,Qt::black);
setPalette(palette);
setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::MinimumExpanding);
surface = new VideoWidgetSurface(this);
}

我在 Qt Assistant 和 QWidget 手册中查找了 QPlalette 类和 QWidget 类说:

Access functions:

const QPalette & palette () const

void setPalette ( const QPalette & )

在我看来,QWidget 具有 palette() 功能,因此 VideoWidget 肯定会拥有它。但是出现这样的错误。提前致谢。

最佳答案

当您声明一个具有相同名称的变量时,您隐藏了 palette()。使用其他名称,例如:

QPalette myPalette = palette();

在您的代码片段中,您有另一个使用 this 的可行解决方案:

QPalette palette = this->palette();

关于linux - 在 Linux 中对 '(QPalette)()' Qt4 的调用不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29782835/

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