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);
но это тоже ничего не делала. Я искал весь день и ничего не нашел. я делаю что-то не так или есть другой способ сделать это?
4 ответов
отлично работает для меня:
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