Qt中用到的样式表代码为Qss,而QSS又是从CSS演变过来,所以如果在学习QSS之前对CSS有很好的理解,这对QSS的学习将会有很大的帮助。
1. 关于Qt所有控件样式表的官方说明
http://qt-project.org/doc/qt-5/stylesheet-examples.html
2. 如何在程序中使用样式表
- 如果你做的项目已经设置好统一的样式,并且多数同类控件的样式基本一致,那么就可以自己写一个Qss文件,通过主程序读入。比如在我们之前的项目中,代码中所有的QCheckBox对象的样式都是一样的,所以可以在Qss文件中加入如下代码:
QCheckBox::indicator {
width: 20px;
height: 20px;
}
QCheckBox::indicator:unchecked {
image:url(:/checkbox.png);
}
QCheckBox::indicator:checked {
image:url(:/checkbox_click.png);
}
或者直接使用如下代码:
qApp->setStyleSheet("QLineEdit { background-color: yellow }");
- 如果我们只是想给某一个对话框中的QLineEdit设置上面的属性,我们可以这样做:
myDialog->setStyleSheet("QLineEdit { background-color: yellow }");
- 如果我们只是想给对话框中某一个特别的QLineEdit对象设置上面的属性,我们可以这样做:
用 QObject::setObjectName()设置它的名字,再用一个ID选择器指向它:
myDialog->setStyleSheet("QLineEdit#nameEdit { background-color: yellow }");
或者我们也可以直接用QLineEdit的属性,忽略选择器:
nameEdit->setStyleSheet("background-color: yellow");