• 2901阅读
  • 2回复

用QColordialog改变窗体的颜色,不想让里面的控件颜色变,如何实现?谢谢 [复制链接]

上一主题 下一主题
离线twfx1027
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-23
在一个窗口里面有好多控件,用QColordialog改变窗体的颜色,不想让里面的控件颜色变,如何实现?谢谢
color->setModal(true);
   if(color->exec() != QDialog::Accepted)
    return;
   QPalette pal = this->palette();
   QColor _color = color->currentColor();
   pal.setColor(QPalette::Window,_color);
   this->setStyleSheet(QString("background-color:%1").arg(_color.name()));
我用这段代码,窗体和所有的控件都变色了。怎么办?
离线ppdayz

只看该作者 1楼 发表于: 2013-05-23
回 楼主(twfx1027) 的帖子
是你的qss语法有问题
实际上你的qss是个简写,或者说你在无意间用了简写,你的qss等于:
  1. *{
  2.     background-color:xxxx
  3. }

这里有文章,你看了如果懂了就懂了
http://www.cnblogs.com/davesla/archive/2011/01/30/1947928.html

不懂的话去看下qss的帮助:
http://qt-project.org/doc/qt-4.8/stylesheet.html
然后就知道了
离线twfx1027

只看该作者 2楼 发表于: 2013-05-23
Re:回 楼主(twfx1027) 的帖子
引用第1楼ppdayz于2013-05-23 09:39发表的 回 楼主(twfx1027) 的帖子 :
是你的qss语法有问题
实际上你的qss是个简写,或者说你在无意间用了简写,你的qss等于:
  1. *{
  2.     background-color:xxxx
  3. }

.......

解决了  谢谢兄弟
快速回复
限100 字节
 
上一个 下一个