QScrollArea 内部滚动条 QSS 样式失效问题及解决方案
在使用 Qt 进行 UI 开发时,我们经常希望通过 QSS(Qt Style Sheets)自定义控件的外观,比如为 QScrollArea 的内部滚动条设置特定的样式。然而,有开发者遇到了这样的问题:在 UI 设计器中预览 QSS 显示效果正常,但程序运行时却显示为系统默认样式。经过反复测试和调试,最终总结出以下现象、原因和解决方案。
问题现象
在对 QScrollArea 进行 QSS 样式定制时,原始代码类似下面这样:
QScrollArea {
border: none;
background: transparent;
}
QScrollArea::viewport {
background-color: #FFFFFF;
border: none;
border-bottom-right-radius: 8px;
}
/* 针对 QScrollArea 内部的垂直滚动条 */
QScrollArea QScrollBar:vertical {
width: 8px;
background: transparent;
margin: 0px;
border: none;
}
QScrollArea QScrollBar::handle:vertical {
min-height: 96px;
border-radius: 4px;
background: rgba(62, 168, 255, 0.5);
}
Q