在UI开发中经常经常需要做美化,大多商业软件还需要专业的美工支持。Qt作为UI开发的利器,对美化这块支持也是比较友好的。本篇要总结的样式表就是Qt的一种强大的机制,它使界面的表现与界面的元素分离,使得设计皮肤与界面控件分离的软件成为可能。
概述
Qt样式表是允许用户定制widgets组件外观的强大机制,此外,子类化QStyle也可以定制widgets组件外观。QT样式表的概念、术语、语法很大程度上受到了HTML 级联样式表(CSS)的影响。
样式表是文本规范,可以使用QApplication :: setStyleSheet()在整个应用程序上设置,也可以使用QWidget::setStyleSheet()在特定的widget(及其子控件)上设置。如果在不同级别上设置了多个样式表,则Qt将从所有已设置的样式表中得出有效样式表,这称为级联。
例如,以下样式表指定所有QLineEdit都应使用黄色作为其背景色,而所有QCheckBox都应使用红色作为文本色:
QLineEdit { background: yellow }
QCheckBox { color: red }
对于这种定制,样式表比QPalette强大得多。例如,可能很想将QPalette::Button设置为红色,以使QPushButton显示为红色按钮。但是,这不能保证适用于所有样式,因为样式受不同平台的限制