Qt 设置控件背景色

时间:2022-12-09 14:50:21
练习程序

void Dialog::on_btnChangeEditColor_clicked()
{
  ui->edit->setText("12345");
  QColor color = QColor(Qt::blue);
  QPalette pal = ui->edit->palette();
  pal.setColor(QPalette::Window, color);
  ui->edit->setPalette(pal);
  ui->edit->update();
}

请问为什么按照上述方法设置背景色后,控件lineedit颜色不发生变化?

4 个解决方案

#1


setStyleSheet("background-color:rgb(234,234,234)");
试试

#2


建议楼主去看看QT的样式表,QSS也就是QtStyleSheet。这样你就会发现Qt的方便

#3


修改QLineEdit背景色应该是QPalette::Base
QPalette::Window是修改窗口背景色的

#4


楼主搞错了吧,

 QPalete::Window,通常指窗口部件的背景色;

    QPalette:WindowText,通常指窗口不见的前景色;

    QPalette::Base,指文本输入窗口部件(比如QtextEdit,QLinedit等)的背景色.//应该用这个的

    QPalette::Text,与QPalette::Base一块使用,指文本输入窗口部件的前景色;

    QPalette::Button,指按钮窗口部件的背景色;

    QPalette::ButtonText,指按钮窗口部件的前景色.

#1


setStyleSheet("background-color:rgb(234,234,234)");
试试

#2


建议楼主去看看QT的样式表,QSS也就是QtStyleSheet。这样你就会发现Qt的方便

#3


修改QLineEdit背景色应该是QPalette::Base
QPalette::Window是修改窗口背景色的

#4


楼主搞错了吧,

 QPalete::Window,通常指窗口部件的背景色;

    QPalette:WindowText,通常指窗口不见的前景色;

    QPalette::Base,指文本输入窗口部件(比如QtextEdit,QLinedit等)的背景色.//应该用这个的

    QPalette::Text,与QPalette::Base一块使用,指文本输入窗口部件的前景色;

    QPalette::Button,指按钮窗口部件的背景色;

    QPalette::ButtonText,指按钮窗口部件的前景色.