2012-05-14 154 views
1

我的Qt版本是4.7.1,我想设置一个QLineEdit的一样的窗口颜色的背景色,我用这样的方式:如何获取Qt Gui应用程序中的对话框背景颜色(窗口颜色)?

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

BTW,而不是使用'的QString ::追加()'这样的,检查出'的QString :: ARG()'。 – Anthony

回答

1

您发布的代码实际上适用于我(使用Windows 7)。您是否使用Photoshop等图像编辑器进行了验证,以确定线条编辑的背景与对话框不同?有时候,大脑会玩技巧,并且会认为背景颜色不同(由于边界),而事实上并非如此。

顺便说一句,你可以让你的QLineEdit的背景透明使用样式表是这样的:

QLineEdit le("Line Edit with transparent BG"); 
le.setStyleSheet("background:transparent;"); 
+0

非常感谢。我再次看看在Win7上的颜色是一样的,而在Win XP上则有一点不同。无论如何,将背景设置为透明可行。 – Royt