我想在QWidget的自定义子类中更改背景颜色。
这是代码:
WorldView::WorldView(QWidget *parent) : QWidget(parent)
{
QPalette p(palette());
p.setColor(QPalette::Background, Qt::black);
setAutoFillBackground(true);
setPalette(p);
}
但是它没有按预期工作。背景颜色保持不变。
我不知道为什么
最佳答案
正如您可以在documentation中阅读的那样,QPalette::Background
已过时。请改用QPalette::Window
。请注意,某些小部件在后台使用其他角色。见QPalette::ColorRole documentation
也:
在这种情况下,我建议使用样式表。参见Qt Style Sheets Reference
但是,如果WorldView是一个自定义小部件,则使用自定义paintEvent
,由您来绘制背景