Как получить цвет фона диалога (цвет окна) в приложении 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;");