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的样式表?的主要内容,如果未能解决你的问题,请参考以下文章

滚动条控制 Qt 中滚动区域的滚动

如何更改 Qt MainWindow 的不透明度?

Qt moc_mainwindow

QT控件自适应窗口大小怎么搞

如何禁用 Qt Mainwindow 快捷方式适用于无模式对话框

如何在qt中实现字符滚动显示