Qss的使用(pyqt)
qss通过selector:declaration
设置其属性参数等
引用qss文件
我们在本地创建一个qss文件,然后在代码中加载即可
QFile qss("testqss.qss");
qss.open(QFile::ReadOnly);
qApp->setStyleSheet(qss.readAll());
qss.close();
或者
with open('app.qss') as f:
qss = f.read()
app = QtWidgets.QApplication(sys.argv)
app.setStyleSheet(qss)
设置全部控件(同类)为同一的qss格式(包括子类)
/*所有QPushButton及它的子类生效*/
QPushButton
{
color:rgb(0,0,0);
}
设置全部控件(同类)为同一的qss格式(不包括子类)
/*只对QPushButton生效,对其子类不生效*/
.QPushButton
{
color:rgb(0,0,255);
}
针对同一个name的控件设置qss样式
这里的setObjectName
可以使多个控件命名为同一个name,用法类似于css中的class
# python文件
self.left_close = QtWidgets.QPushButton("") # 关闭按钮
self.left_close.setObjectName('left_close')
# qss文件
QPushButton#left_close
{
background-color: black;
}
针对同一个name但含有不同属性的控件设置qss样式
这里的a为新增的属性
# python文件
self.left_close = QtWidgets.QPushButton("") # 关闭按钮
self.left_close.setObjectName('left_close')
self.left_close.setProperty("a",true)
# qss文件
QPushButton#left_close[a="true"]
{
background-color: black;
}
针对某一个特定的控件内部的子控件的属性
/*在QWidget#testwidget中,孩子及子孩子中类型QLineEdit的属性设置*/
/*即设置界面objectnname为testwidget下的所有QLineEdit的属性*/
QWidget#testwidget QLineEdit
{
color:rgb(0,0,100);
}