Qt 设置QLineEdit 的背景颜色

问题描述 投票:0回答:5

我正在尝试更改

QLineEdit
的背景颜色,但我根本不明白。

我尝试使用

stylesheets
最初是这样的

QLineEdit *le = new QLineEdit();
le->setStyleSheet("background:#000;");

但这并没有起到任何作用。我尝试像这样使用

QPalette

QPalette palette;
palette.setColor(QPalette::Base, Qt::black);
palette.setColor(QPalette::Background, Qt::black);
le.setPalette(palette);    

但这也没有做任何事情。我找了一整天也没找到任何东西。我做错了什么还是有其他方法可以做到这一点?

c++ qt background qlineedit palette
5个回答
22
投票

您可以通过设置调色板来设置行编辑的背景和文本颜色:

QLineEdit *le = new QLineEdit();

QPalette palette;
palette.setColor(QPalette::Base,Qt::black);
palette.setColor(QPalette::Text,Qt::white);
le->setPalette(palette);

12
投票

对我来说效果很好:

QLineEdit *le = new QLineEdit();
le->setStyleSheet("QLineEdit { background: rgb(0, 255, 255); selection-background-color: rgb(233, 99, 0); }");

6
投票

我必须使用标准 CSS 中的背景颜色,如下所示:

QLineEdit* edit = new QLineEdit();
edit->setStyleSheet("QLineEdit {background-color: black;}");

我使用的是Qt 5.4


5
投票

您的代码几乎是正确的。只有 QLine 编辑使用基色。因此,如果您不想替换可以包含边框填充和边距的现有样式表,并且只想更改背景,请使用 QPalette:

QPalette palette = _ui->lnSearch->palette();
palette.setColor(QPalette::Base, Qt::green);
_ui->lnSearch->setPalette(palette);

感谢:https://forum.qt.io/topic/64568/why-setting-background-color-of-qlineedit-has-no-effect


0
投票

这是我的代码,其中WWidget继承自QWidget:

typedef QRgb COLOR;
void
WWidget::Widdet_UpdateColorBackground(COLOR coBackground)
    {
    QPalette oPalette(palette());   // Make a copy of the current palette
    oPalette.setColor(QPalette::Base, coBackground);
    setPalette(oPalette);
    }
© www.soinside.com 2019 - 2024. All rights reserved.