2012-05-14 73 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