2014-12-03 676 views
9

我試圖改變QLineEdit的背景顏色,我根本找不到它。Qt設置QLineEdit的背景顏色

我嘗試使用stylesheets原來這樣

QLineEdit *le = new QLineEdit(); 
le->setStyleSheet("background:#000;"); 

,但沒有做任何事情。我嘗試使用QPalette這樣的

QPalette palette; 
palette.setColor(QPalette::Base, Qt::black); 
palette.setColor(QPalette::Background, Qt::black); 
le.setPalette(palette);  

但是這也沒有做任何事情。我一整天都在尋找,找不到任何東西。我做錯了什麼,或者有另一種方式來做到這一點?

回答

7

正常工作:

QLineEdit *le = new QLineEdit(); 
le->setStyleSheet("QLineEdit { background: rgb(0, 255, 255); selection-background-color: rgb(233, 99, 0); }"); 
+0

啊,我發現這是什麼那是隻是因爲窗口具有'Qt :: WA_TranslucentBackground'屬性。這整天都讓我瘋狂。雖然 – 2014-12-03 23:24:14

+0

@DavidLudwig我很高興你明白了。無論如何,將答案標記爲已接受將有助於考慮它是一個有效的答案。 – Iuliu 2014-12-03 23:51:25

7

您可以通過設置調色板等設定行編輯的背景和文本顏色:

QLineEdit *le = new QLineEdit(); 

QPalette palette; 
palette.setColor(QPalette::Base,Qt::black); 
palette.setColor(QPalette::Text,Qt::white); 
le->setPalette(palette); 
2

我不得不使用從標準的CSS背景顏色像這樣:

QLineEdit* edit = new QLineEdit(); 
edit->setStyleSheet("QLineEdit {background-color: black;}"); 

我使用Qt 5.4