Qt Установить цвет фона QLineEdit

Я пытаюсь изменить цвет фона 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);

но это тоже ничего не делало. Я искал весь день и не могу ничего найти. я делаю что-то не так или есть другой способ сделать это?

9

Решение

Прекрасно работает для меня:

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

Другие решения

Вы можете установить цвет фона и текста редактирования строки, установив палитру следующим образом:

QLineEdit *le = new QLineEdit();

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

Я должен был использовать background-color из стандартного CSS следующим образом:

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

Я использую Qt 5.4

2

Ваш код почти правильный. Только QLine edit использует Основной цвет. Поэтому, если вы не хотите заменять существующую таблицу стилей, которая может содержать отступы границ и поля, и вы хотите изменить только фон, используйте 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

2
По вопросам рекламы [email protected]