• 13528阅读
  • 7回复

Qt4.1.0在windows下如何设置QPushButton如何设置背景颜色并显示? [复制链接]

上一主题 下一主题
离线ny13524
 
只看楼主 正序阅读 楼主  发表于: 2008-12-02
— 本帖被 XChinux 执行加亮操作(2009-01-06) —
Qt4.1.0在windows下编程如何设置QPushButton如何设置背景颜色并能正常显示
如下代码:
openButton->setBackgroundColor(QColor(255,0,0));
openButton->setAutoFillBackground(true);
可显示的结果是只有边框处有设置的颜色,如图:

想达到的效果是整个PushButton都显示颜色
如果换用代码:
QPalette  pal  =  openButton->palette(); 
pal.setColor(QPalette::Background,QColor(255,0,0)); 
openButton->setPalette(pal);
则没反应

离线xiaolong5337
只看该作者 7楼 发表于: 2012-03-31
顶一下,各位辛苦了!
离线geniustzh
只看该作者 6楼 发表于: 2012-02-07
离线long5337

只看该作者 5楼 发表于: 2009-01-18
顶一下,辛苦了!!
离线sikylori

只看该作者 4楼 发表于: 2009-01-12
感谢1L大哥
离线ny13524
只看该作者 3楼 发表于: 2008-12-03
非常感谢两位朋友的提示,可能是版本问题,我的qt4.1.0不支持CSS样式表,没有setStyleSheet()这个函数.
用seekingwang 所说的代码
QPalette palette;
QBrush brush(QColor(100,100,255));
QBrush brush1(QColor(255,255,255));颜色可以设置透明
palette.setBrush(QPalette::Active, QPalette::Button, brush);底色
palette.setBrush(QPalette::Active, QPalette::ButtonText, brush1);字体色
pushButton.setPalette(palette);
试了下,字体颜色可以改变,但背景色还是原样,不知问题出在哪里
不过问题解决了.写出来大家可以分享下.
用setBackgroundColor(QColor(255,0,0))和setAutoFillBackground(true)设置颜色
再用pushButton->setFlat(true),可以让整个按钮显示指定颜色
不过还是对上面出现问题不是很明白.哪位清楚的话可以给讲解一下.学习交流嘛
再次感谢lazybone 和seekingwang 的指点.
[ 此贴被ny13524在2008-12-03 15:51重新编辑 ]
离线seekingwang
只看该作者 2楼 发表于: 2008-12-02
QPalette palette;
QBrush brush(QColor(100,100,100, 255));
QBrush brush1(QColor(255,255,255, 255));颜色可以设置透明
palette.setBrush(QPalette::Active, QPalette::Button, brush);底色
palette.setBrush(QPalette::Active, QPalette::ButtonText, brush1);字体色

pushButton.setPalette(palette);
离线lazybone
只看该作者 1楼 发表于: 2008-12-02
尽量用CSS去控制
pushButton.setStyleSheet("background-color: rgb(112, 93, 255);");
快速回复
限100 字节
 
上一个 下一个