在使用 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