C++Qt QSS要注意的坑

  • qss源自css,相当于css的一个子集,主要支持的是css2标准,很多网上的css3的标准的写法在qss这里是不生效的,所以不要大惊小怪。

  • qss也不是完全支持所有的css2,比如text-align官方文档就有说明,只支持 QPushButton and QProgressBar,务必看清楚。

  • 有时候偷懒直接来一句 *{xxx},你会发现大部分是应用了,也有小部分或者极个别没有应用,你可能需要在对应的窗体中 this->setStyleSheet() 来设置。

  • qss的执行是有优先级的,如果没有指定父对象,则对所有的应用,比如在窗体widget中 {color:#ff0000;} 这样会对widget以及widget的所有子对象应用该样式,这种问题各大群每周都有人问,你会发现各种奇奇怪怪的异样不正常,怎么办呢,你需要指定类名或者对象名,比如 #widget{color:#ff0000;} 这样就只会对widget对象应用该样式,另一种写法 QWidget#widget{color:#ff0000;},只想对窗体本身而不是子控件按钮标签等 .QWidget{color:#ff0000;} ,具体详细规则参见官方说明。

  • qss整体来说还是可以的,解析速度性能在Qt5高版本后期比Qt4好很多,尤其是修复了不少qss中的解析绘制BUG。尽管有这样那样的BUG,怀着包容的心对待它。


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/VsFMs

你可能感兴趣的:(Qt学习和开发分享,qt,开发语言)