PyQt5-如何用qss文件设置控件样式

2025-10-10 05:13:41

1、控件的样式设置:setStyleSheet(str)

用来设置控件的样式,参数是字符串类型,格式是(属性名:值;)多个属性和值要用分号分开;

def test_01(self):

 

   lab=QLabel(self)

 

   lab.setGeometry(20,20,310,50)

 

   lab.setText('高楼万丈平地起')

 

   lab.setStyleSheet('background-color:red;'

 

                     'font-size:40px;'

 

                     'color:yellow')

上例中样式表中的参数修饰了lab的样式。

PyQt5-如何用qss文件设置控件样式

2、因为样式表内容多,而且很多控件都使用相同的样式,为了方便管理及使用,就将样式表与代码分离开,使用的时候调用即可方法就是创建qss文件样式表。

 

创建后缀为.qss的文件:选择认为方便的路径存放,如果qss文件不是在本工作目录下,应提供绝对路径。

PyQt5-如何用qss文件设置控件样式

1、qss选择器的设置:

1)qss文件的内容是有花括号{}括起来的setStlyeSheet()的字符串参数。

2)qss文件可以写多个类型的控件样式,故此每个样式应在花括号前加选择器。

3)选择器就是控件的类名,

例如:

QLabel {

 

   background-color:red;

 

   font-size:40px;

 

   color:yellow;

 

}

为了看起来清晰,故每个属性可以换行缩进。

PyQt5-如何用qss文件设置控件样式

2、qss文件的读取:

1)用读取文件的步骤来获取文件内容:

with open('Qobj.qss', 'r') as f:f.read()

2)用全局的应用程序对象qApp调用setStyleSheet(),把读到的文件内容做参数。

例如:

with open('Qobj.qss', 'r') as f:

 

             qApp.setStyleSheet(f.read())

此时所有QLabel类控件都会是一样的样式

PyQt5-如何用qss文件设置控件样式

1、假如上例中需要再添加一个标签,同样是QLabel控件,而不想使用选择器的样式,这时就用到ID选择器。

这里涉及到一个知识点就是QObject对象的一个方法,setObjectName(),看下面的链接。这个设置的名字就可以作为一个ID。

因为QObject类是控件类的基类,所以,用setObjectName()也可以给QLabel等这样的控件设置对象名(也就是ID)。

例如:

lab1 = QLabel(self)

 

lab1.setGeometry(20, 20, 310, 50)

 

lab1.setText('高楼万丈平地起')

 

lab1.setObjectName('Normal')

 

意思就是把具有同样控件类型且有相同样式的控件设置为相同的ID,而不需要样式的相同类型的控件不设置相同的ID,或不设置ID。

PyQt5-如何用qss文件设置控件样式

2、qss文件内写法:

在选择器后面加#ID,即可。

此时具有相同ID的同类控件就有了相同的样式。

QLabel#Normal{

 

   background-color:red;

 

   font-size:40px;

 

   color:yellow;

 

}

PyQt5-如何用qss文件设置控件样式

1、同样涉及到QOject基类的一个方法setProperty(),为控件设置属性:

lab1 = QLabel(self)

 

lab1.setGeometry(20, 20, 310, 50)

 

lab1.setText('高楼万丈平地起')

 

lab1.setObjectName('Normal')

 

lab1.setProperty('level','small')

PyQt5-如何用qss文件设置控件样式

2、在qss文件里的写法是,在ID名字后面用中括号[]包裹属性的名字=用引号包括的值:

例如:

QLabel#Normal[level="small"]{

 

   background-color:green;

 

   font-size:10px;

 

   color:yellow;

 

}

PyQt5-如何用qss文件设置控件样式

3、这样就把相同类型和相同ID的控件加以区分。

PyQt5-如何用qss文件设置控件样式

1、掌握QObject类的方法。

为控件设置ID,和属性。

qss文件的写法。要和代码中选择器,id, 属性对应。

qss文件的读取。用全局程序对象调用setStyleSheet(),参数是读取的内容。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢