您的位置:首页 > 编程语言 > Qt开发

QT中设置按钮背景颜色

2013-08-09 16:03 776 查看
     记得刚开始搞QT的时候,经常为一些小问题头疼,有时甚至怀疑自己是不是不适合搞这个。这些个问题中,就包括按钮背景颜色的设置。

    设置QPushButton的背景颜色,最基本的方法大概就是使用QPalette了:

 

QPushButton *pushButton = new QPushButton(this);
QPalette palette = pushButton->palette();
palette.setColor(QPalette::window,Qt::red);
pushButton->setPalette(palette);


     可惜的是,运行之后,BUTTON总不能正确的显示红色背景。后来,查证颇多,由网友说需要加一句 pushButton->setAutoFillBackGround(true);我试了之后,仍然不行,后来在QT的样式表相关的说明文档中才找到一些蛛丝马迹:

 

     


 

     原来,QPushButton会自动画一个自然边框,而这个边框又正好覆盖了BUTTON的绘制RECT,所以不是没有把背景设置成RED,而是设置成功了,没有显示出来,既然这是样式表的方法,那不用样式表能不能把自然边框隐藏呢,后来查了一下,QPushButton又一个方法:setFlat(true),加上这个代码后,九OK了,红色背景就成功画出来了。综合来讲,代码如下:

                                                         


        QPushButton *pushButton = new QPushButton(this);

pushButton->setAutoFillBackGround(true);
pushButoon->setFlat(true);
 
QPalette palette = pushButton->palette();
palette.setColor(QPalette::window,Qt::red);
pushButton->setPalette(palette);


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息