直接放结论:QScrollArea的所有父类不能有样式表,测试结果就是父类的样式表覆盖掉滚动条的样式设置,或者说到了QScrollArea滚动条这里,父类样式的优先级反而更高?!去掉恢复正常。
心路历程:
耗时一晚上通过新建工程,复制ui文件、mainWindow头文件源文件到测试工程反复运行测试,最后发现复制代码、复制除了centralwidget的所有控件到测试工程里都能够正常显示,只有把.ui文件也就是把centralwidget也完整的复制了过去就失效了,后面惊奇的发现打开centralwidget控件的样式表,删除了里面的按钮样式代码(会有谁会觉得这有问题啊啊~~)之后就正常运行了
QPushButton
{
border:none;
}
为解心中疑惑,我特意查看了帮助里的QPushButton和QScrollBar,发现它们也妹有继承关系呀。然后我就猜测是不是我基础知识出了问题,它们的样式优先级不是我学javaScript那样式的,又是一顿测试与百度的操作。好吧,这里的优先级就是乱的,然后,我找这个问题的百度也没找到很多的讨论,也没正确的解决方案,所以,为此特意写下此篇bug记录,以望能解后来者跟我一样的迷惑。
环境:Qt 5.12.9(Linux22.04.3)