• 7121阅读
  • 5回复

mainwindow的背景色设置,setStyleSheet和setPalette结果不同 [复制链接]

上一主题 下一主题
离线明辰电子
 

只看楼主 倒序阅读 楼主  发表于: 2015-03-23
初学QT,建立了一个mainwindow,需要把窗体的背景色设置为黑色。网上查了一堆资料,知道有setStyleSheet和setPalette两种方法。于是都试了一下。结果发现调试结果居然不用,何解?
setStyleSheet方式:
    //setpalette方式    QPalette q=ui->FWidget->palette();    q.setColor(QPalette::Window,QColor(255,255,255));    ui->FWidget->setPalette(q);结果窗体无背景色变化。
//setStyleSheet方式    ui->FWidget->setStyleSheet("background-color: black");//背景色设置结果窗体背景显示黑色。
这个是为什么?
离线明辰电子

只看该作者 1楼 发表于: 2015-03-23
FWidget是mainwindow下的QWidget窗体,在UI中设计的
离线dbzhang800

只看该作者 2楼 发表于: 2015-03-23
嗯,Qt设计如此:不保证 setPalette 设置的东西被使用。
离线lemonzll

只看该作者 3楼 发表于: 2015-03-24
黑色是QColor(0, 0, 0), 并且QWidget如果使用QPalette设置背景色需要setAutoFillBackground(true);
离线llong

只看该作者 4楼 发表于: 2015-03-24
QColor(255,255,255)这是白色
离线明辰电子

只看该作者 5楼 发表于: 2015-03-24
了解了,网上都没说需要设置setAutoFillBackground(true); 黑色白色问题是搞错了
快速回复
限100 字节
 
上一个 下一个