• 6126阅读
  • 5回复

error求救 passing……as……argument of…… [复制链接]

上一主题 下一主题
离线帅坤
 
只看楼主 正序阅读 楼主  发表于: 2010-05-17
.cpp文件中部分代码:
void MyWidget::slotChangeButtonColor()
{
      if(  AlarmButton->palette().color( QPalette::Active, QColorGroup::Button ) == red )
           AlarmButton->palette().setColor( QPalette::Active, QColorGroup::Button, black );出错语句
}
其中MyWidget是我的主窗口,AlarmButton是定义的一个QPushButton指针,这个槽与AlarmButton按钮点击信号连接在一起。我是想通过点击按钮来改变按钮的颜色。可是编译的时候,就会报错。
Error: passing 'const QPalette' as ' this' argument of ' void QPalette::setColor( QPalette::ColorGroup, QColorGroup::ColorRole, const QColor& )' discards qualifiers.
这个问题是怎么回事啊?
离线foxyz

只看该作者 5楼 发表于: 2010-05-19
AlarmButton->palette().setColor( QPalette::Active, QColorGroup::Button, black );
AlarmButton->palette() 返回的是一个const, 然后你还想通过setColor来修改这个常量的成员变量。
离线帅坤
只看该作者 4楼 发表于: 2010-05-18
引用第3楼dbzhang800于2010-05-17 15:43发表的  :
你没注意到你前面在尝试修改const 常量么?


对不起,我的C++刚刚接触,好多还不懂。不太清楚这个是怎么回事,但是,我没有要修改什么常量的意思啊?
离线dbzhang800

只看该作者 3楼 发表于: 2010-05-17
引用第2楼帅坤于2010-05-17 15:08发表的  :
没看懂。不过还是谢谢了!
我已经把出问题的那句话用其它方式替换掉了,现在问题已经解决了。


你没注意到你前面在尝试修改const 常量么?
离线帅坤
只看该作者 2楼 发表于: 2010-05-17
引用第1楼dbzhang800于2010-05-17 12:42发表的  :

没看懂。不过还是谢谢了!

我已经把出问题的那句话用其它方式替换掉了,现在问题已经解决了。
离线dbzhang800

只看该作者 1楼 发表于: 2010-05-17
const QPalette &    palette () const
快速回复
限100 字节
 
上一个 下一个