В qt вы обычно устанавливаете цвет QWidget
с помощью QPalette
.
Пример:
QPalette palette = new QPalette();
palette.setBrush(QPalette::Base, this->palette().backgorund());
QLineEdit *line = new QLineEdit();
line->setPalette(palette);
Теперь у меня небольшая проблема. Невозможно изменить цвет границы QLineEdit с помощью QPalette
. Это означает, что я должен использовать QStyleSheet
.
Пример:
QLineEdit *line = new QLineEdit();
line.setStyleSheet("border: 1px solid green");
Но теперь я не могу установить базовый цвет QLineEdit с QPalette
, потому что цвет фона QLineEdit больше не связан с QPalette::base
. Это означает, что следующий код не изменит background-color
QLineEdit
:
QPalette palette = new QPalette();
palette.setBrush(QPalette::Base, this->palette().backgorund());
QLineEdit *line = new QLineEdit();
line->setPalette(palette);
line->setStyleSheet("border: 1px solid green");
Но невозможно определить background-color
QLineEdit в таблице стилей, потому что background-color
QLineEdit
должны быть динамическими.
Мой вопрос: как связать фоновый цвет QLineEdit
с QPalette::base
, чтобы определить background-color
QLineEdit
динамически с QPalette
?
QString
, содержащий необходимые значения фона и границ? - person G.M.   schedule 17.08.2018