Qt如何更改mainWindow中每个滚动区域的widgetContents-widget的样式表?
Posted
技术标签:
【中文标题】Qt如何更改mainWindow中每个滚动区域的widgetContents-widget的样式表?【英文标题】:Qt How to change stylesheet of the widgetContents-widget of every scrollarea in mainWindow? 【发布时间】:2017-11-01 15:46:38 【问题描述】:在 Qt 中,我不能只设置 QScrollArea 的样式(我只想设置背景颜色),我必须设置每个滚动区域的 widgetContents-widget 的样式,例如:
// qss code
QScrollArea #scrollAreaWidgetContents_1, #scrollAreaWidgetContents_2, ...
background-color: MYCOLOR;
问题:如何设置 mainWindow 的样式表,让每个滚动区域的 widgetContents-widget 更改其背景颜色,而无需像示例中那样手动调用它们?感谢您的回答!
【问题讨论】:
你的意思是这样的? doc.qt.io/qt-4.8/qt-widgets-stylesheet-example.html 【参考方案1】:如果您不在其他地方使用小部件的对象名称,您可以为所有对象设置一个通用对象名称:
auto* content = new QWidget();
content->setObjectName("scrollAreaWidget");
auto* scrollArea = new QScrollArea();
scrollArea->setWidget(content);
然后像这样从 qss 解决它们:
QWidget#scrollAreaWidget
background-color: white;
如果没有选择,您可以尝试子类化 QWidget
并为您的新类应用样式。我没有尝试过这种方法,但是it seems,你可能会在那里遇到一些困难。
【讨论】:
好的,谢谢。好吧,我必须使用对象名称,所以很遗憾没有选择。所以子类化似乎是唯一的选择。实际上想阻止这种情况,但我认为它会起作用以上是关于Qt如何更改mainWindow中每个滚动区域的widgetContents-widget的样式表?的主要内容,如果未能解决你的问题,请参考以下文章