首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux中不匹配对'(QPalette)()‘Qt4的调用

在Linux中不匹配对'(QPalette)()‘Qt4的调用
EN

Stack Overflow用户
提问于 2015-04-21 20:48:13
回答 1查看 124关注 0票数 0

当我在QtCreator3.3.2中用Qt4.8.6Ubuntu14.04中编译一个示例代码时,发生了以下错误:

代码语言:javascript
复制
videowidget.cpp:19: error: no match for call to '(QPalette) ()'
     palette = palette();
                       ^

在这个片段中:

代码语言:javascript
复制
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助手和QWidget手册中查找了QWidget类和QWidget类:

存取功能: const QPalette & palette () const void setPalette ( const QPalette &)

在我看来,QWidgetpalette()函数,所以VideoWidget肯定会拥有它。但是,这样的错误出现了。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-04-21 21:07:22

在声明同名变量时,可以隐藏palette()。使用其他名称,例如:

代码语言:javascript
复制
QPalette myPalette = palette();

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

代码语言:javascript
复制
QPalette palette = this->palette();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29782835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档