Как получить цвет фона диалога (цвет окна) в приложении Qt Gui?

Моя версия Qt 4.7.1, и я хочу установить цвет фона QLineEdit так же, как цвет окна, и я использую этот способ:

QString bgColorName = palette().color(QPalette::Normal, QPalette::Window).name();
QString strStyleSheet = QString("QLineEdit {background-color: ").append(bgColorName).append("}");
ui->lineEdit->setStyleSheet(strStyleSheet);

Я попытался получить имя цвета фона и затем установить таблицу стилей QLineEdit, однако после запуска приложения я обнаружил, что цвет QLineEdit немного отличается, то есть, если вы внимательно посмотрите на него, вы увидите разницу, как на Win7, так и на Mac. Может ли кто-нибудь помочь мне найти способ получить правильный цвет фона диалога, спасибо заранее.

1 ответ

Решение

Код, который вы разместили на самом деле работает для меня (с использованием Windows 7). Вы убедились с помощью графического редактора, как Photoshop, что фон редактирования строки не совпадает с диалогом? Иногда ум играет фокусы и может думать, что цвет фона отличается (из-за границы), хотя на самом деле это не так.

Кстати, вы можете просто сделать фон вашего QLineEdit прозрачным, используя такие таблицы стилей:

QLineEdit le("Line Edit with transparent BG");
le.setStyleSheet("background:transparent;");
Другие вопросы по тегам