Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QLineEdit的Qt设置背景色_C++_Qt_Background_Qlineedit_Palette - Fatal编程技术网

C++ QLineEdit的Qt设置背景色

C++ QLineEdit的Qt设置背景色,c++,qt,background,qlineedit,palette,C++,Qt,Background,Qlineedit,Palette,我正在尝试更改QLineEdit的背景色,但我完全弄不清楚 我最初尝试像这样使用样式表 QLineEdit *le = new QLineEdit(); le->setStyleSheet("background:#000;"); QPalette palette; palette.setColor(QPalette::Base, Qt::black); palette.setColor(QPalette::Background, Qt::black); le.setPalette(pa

我正在尝试更改
QLineEdit
的背景色,但我完全弄不清楚

我最初尝试像这样使用
样式表

QLineEdit *le = new QLineEdit();
le->setStyleSheet("background:#000;");
QPalette palette;
palette.setColor(QPalette::Base, Qt::black);
palette.setColor(QPalette::Background, Qt::black);
le.setPalette(palette);    
但那没用。我试着像这样使用
qpalete

QLineEdit *le = new QLineEdit();
le->setStyleSheet("background:#000;");
QPalette palette;
palette.setColor(QPalette::Base, Qt::black);
palette.setColor(QPalette::Background, Qt::black);
le.setPalette(palette);    
但这也没起什么作用。我找了一整天,什么也没找到。我做错了什么事,还是有别的办法?

对我来说很好:

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

通过如下设置选项板,可以设置line edit的背景和文本颜色:

QLineEdit *le = new QLineEdit();

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

我必须使用标准css的背景色,如下所示:

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

我使用的是Qt5.4

您的代码几乎正确。只有QLine edit使用基础颜色。因此,如果您不想替换可能包含边框、填充和边距的现有样式表,并且只想更改背景,请使用QPalette:

QPalette palette = _ui->lnSearch->palette();
palette.setColor(QPalette::Base, Qt::green);
_ui->lnSearch->setPalette(palette);

感谢:

啊,我找到了它是什么,只是因为窗口具有
Qt::WA_transparcentbackground
属性。这一整天都让我发疯。谢谢though@DavidLudwig我很高兴你明白了。考虑到这是一个有效的答案,将答案标记为已接受将是有帮助的。。。