Я пытаюсь изменить цвет фона 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);
но это тоже ничего не делало. Я искал весь день и не могу ничего найти. я делаю что-то не так или есть другой способ сделать это?
Прекрасно работает для меня:
QLineEdit *le = new QLineEdit();
le->setStyleSheet("QLineEdit { background: rgb(0, 255, 255); selection-background-color: rgb(233, 99, 0); }");
Вы можете установить цвет фона и текста редактирования строки, установив палитру следующим образом:
QLineEdit *le = new QLineEdit();
QPalette palette;
palette.setColor(QPalette::Base,Qt::black);
palette.setColor(QPalette::Text,Qt::white);
le->setPalette(palette);
Я должен был использовать background-color из стандартного CSS следующим образом:
QLineEdit* edit = new QLineEdit();
edit->setStyleSheet("QLineEdit {background-color: black;}");
Я использую Qt 5.4
Ваш код почти правильный. Только 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