C++ 如何更改Qwidget的背景色,而不考虑其父对象的背景色

C++ 如何更改Qwidget的背景色,而不考虑其父对象的背景色,c++,qt,C++,Qt,我有一个定制的Qwidget,我必须改变它的背景颜色,而不是它的背景颜色。我的代码不起作用 我怎样才能做到呢? 我的代码是 QFrame *frame = new QFrame(ui->frame); QPalette palette; palette.setColor(QPalette::Background,Qt::red); frame->setFixedSize(240,240); frame->setPalette(palette); frame->setAu

我有一个定制的Qwidget,我必须改变它的背景颜色,而不是它的背景颜色。我的代码不起作用

我怎样才能做到呢? 我的代码是

QFrame *frame = new QFrame(ui->frame);
QPalette palette;

palette.setColor(QPalette::Background,Qt::red);
frame->setFixedSize(240,240);
frame->setPalette(palette);
frame->setAutoFillBackground(true);
frame->show();

你试过样式表吗

比如:

QFrame *frame = new QFrame(ui->frame);

frame->setFixedSize(240,240);
frame->setStyleSheet("background-color:black;");
frame->show();

我刚刚添加了
frame->setStyleSheet(“背景:黑色;”)
; 完成了


谢谢大家的回答。

您能为解释添加更多细节吗?实际上我想更改自定义Qframe的背景色,它的父对象是透明的Qframe,如果我尝试将背景色设置为子Qframe,它总是透明的,而不是我正在设置的,我尝试了pallete.setBrush函数,但输出仍然相同。您使用的是什么样式?尝试
qpalete::Window
。是的,我尝试了,但输出仍然相同