一、前言
最近项目正在进行QT开发,UI主要用QSS形式,主要针对windows和linux平台,开发流程为在windows上开发大概成品后,部署到linux环境上。过程中发现,QT对于windows和linux不同平台,UI呈现形式不同,碰到各种奇怪问题,这边对QT各类问题及用到的QSS进行总结,并设计一种基于现有xml形式的UI结构,方便后续QT界面模块开发。后续也会对另一种QML形式的GUI进行学习总结,方便混合开发。
【debug问题点】:QT QSS GUI
【环境】:windows linux
【使用工具】:QT
二、QSS语法总结
2.1、常见方法
2.1.1、Qt Designer
如上图,可以通过 右键按钮->改变样式表 或者 右边属性框中的styleSheet 访问到控件的样式表,进行QSS编写。
使用该方式的好处在于,可以直观看到设计效果,通过Ctrl+R就可以预览窗体设计。并且在编辑样式表窗口中添加资源、添加渐变、添加颜色、添加字体,方便直接编辑特定样式的颜色。
【!!!重点】:此类方式编辑的样式表默认作用于当前控件及其所有子控件,符合QT 父子控件继承的设计思想,当然QT也提供了相应QSS语法,能够屏蔽掉继承的影响,详见2.2.3选择器。
2.1.2、QSS文件读写
使用QFile读入样式表,使用setStyleSheet进行设置。对不同控件生效的示例代码如下:
QApplication app(argc, argv);
QFile qss("StyleSheet.qss");
qss.open(QFile: