如何更改Qwidget的背景颜色,而不受其父窗口背景颜色的影响?

3

我有一个自定义的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();

你能否在解释中添加更多细节? - dfranca
实际上,我想更改自定义Qframe的背景颜色,其父级是透明的Qframe。如果我尝试将背景颜色设置为子Qframe,则始终是透明的,而不是我所设置的颜色。我尝试了pallete.setBrush函数,但输出仍然相同。 - Abhijeet Bhilare
你使用的是哪种样式?尝试使用 QPalette::Window - Nejat
2个回答

2
你尝试过样式表吗?类似这样的东西:
QFrame *frame = new QFrame(ui->frame);

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

是的,我尝试过了,但输出结果仍然相同。 - Abhijeet Bhilare

-1

我刚刚添加了frame->setStyleSheet("background:black;");就完成了。

感谢大家的回答。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接