Qt如何更改mainWindow中每个scrollarea的widgetContents-widget的样式表?

时间:2017-11-01 15:46:38

标签: c++ qt qtstylesheets

在Qt中,我不能只设置QScrollArea的样式(我只想设置背景颜色),我必须为每个scrollarea的widgetContents-widget设置样式,如:

// qss code
QScrollArea #scrollAreaWidgetContents_1, #scrollAreaWidgetContents_2, ...{
    background-color: MYCOLOR;
}

问题:如何设置mainWindow的样式表,每个scrollarea的widgetContents-widget都会更改其背景颜色,而不是像示例中那样手动调用它们?谢谢你的回答!

1 个答案:

答案 0 :(得分:0)

如果您不在其他地方使用窗口小部件的对象名称,则可以为所有这些设置一个公共对象名称:

stringOFDirection.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!

然后从qss中解决这些问题:

auto* content = new QWidget();
content->setObjectName("scrollAreaWidget");
auto* scrollArea = new QScrollArea();
scrollArea->setWidget(content);

如果这不是选项,您可以尝试子类化QWidget#scrollAreaWidget { background-color: white; } 并为新类应用样式。我没有尝试过这种方法,但是it seems,你可能会遇到一些困难。