赞
踩
在使用ui编辑界面,我们常用右边的属性栏的styleSheet来编辑此控件的样式表内容,实现单个控件样式的编辑,而实现主题的切换,实质是批量对所有控件进行样式编辑,这种方法就适用于内容较多,且不方便在程序中编写。
我们将所需控件的属性通过编写.Qss文件(也可以直接找现成的)。
在编写多个主题后,加入需适配的界面文件。
下拉框遍历读取主题,读取内容进行主题设置。
设置主题,建立历史记忆。
--style
--QSS-master
--主题1.qss
--主题2.qss
--QSS-now
--NOW.qss
- self.SET()#主题检测
-
- # 初始化主题下拉框
- Drop_downBoxContent = self.get_path_file()
- for i in Drop_downBoxContent: # 遍历添加
- self.comboBox.addItem(i)
- # 获取内容进行主题设置
- self.comboBox.currentTextChanged.connect(self.setstyles)
-
- def SET(self):
- """
- 设置初始量
- :return:
- """
- # 检测设置是否被更新
- b = os.path.exists("./style/QSS-now/NOW.qss")#主题
- if b == True:
- # 1、QSS直接导
- style_file = "./style/QSS-now/NOW.qss"
- # 2、读取样式文件内容
- with open(style_file, "r", encoding="UTF-8") as file:
- # 3、加载读取的样式内容
- self.style_sheet = file.read()
- # 4、完成设置
- self.setStyleSheet(self.style_sheet)
- self.style = self.style_sheet
-
-
- def setstyles(self):
- """
- 设置主题风格
- """
- style = self.comboBox.currentText()
- # 地址拼接
- self.file_address = "./style/QSS-master/" + style + r".qss"
- # 主题设置
- # 1、QSS直接导
- style_file = self.file_address
- # 2、读取样式文件内容
- with open(style_file, "r", encoding="UTF-8") as file:
- # 3、加载读取的样式内容
- self.style_sheet = file.read()
- # 4、完成设置
- self.setStyleSheet(self.style_sheet)
- # 5、建立历史记忆
- self.file_usering = "./style/QSS-now/" + "NOW" + r".qss"
- shutil.copyfile(self.file_address, self.file_usering)

编写qss工具:QssStylesheetEditor
QSS是来源于CSS,算是Qt定制版的一个CSS子集,可参考
深入了解CSS:CSS 教程
使用QSS美化PyQt界面,分享6套超赞皮肤 - muzing的文章 - 知乎 https://zhuanlan.zhihu.com/p/390192953
学习过程记录,如有问题,望指正(手动鞠躬)!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。