2014-12-03 186 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