【问题标题】:Qt How to change stylesheet of the widgetContents-widget of every scrollarea in mainWindow?Qt如何更改mainWindow中每个滚动区域的widgetContents-widget的样式表?
【发布时间】:2017-11-01 15:46:38
【问题描述】:

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

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

问题:如何设置 mainWindow 的样式表,让每个滚动区域的 widgetContents-widget 更改其背景颜色,而无需像示例中那样手动调用它们?感谢您的回答!

【问题讨论】:

标签: c++ qt qtstylesheets


【解决方案1】:

如果您不在其他地方使用小部件的对象名称,您可以为所有对象设置一个通用对象名称:

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

然后像这样从 qss 解决它们:

QWidget#scrollAreaWidget
{
    background-color: white;
}

如果没有选择,您可以尝试子类化 QWidget 并为您的新类应用样式。我没有尝试过这种方法,但是it seems,你可能会在那里遇到一些困难。

【讨论】:

  • 好的,谢谢。好吧,我必须使用对象名称,所以很遗憾没有选择。所以子类化似乎是唯一的选择。实际上想阻止这种情况,但我认为它会起作用
猜你喜欢
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 2015-06-26
  • 2014-10-23
  • 2018-04-29
相关资源
最近更新 更多