qt框架中的界面美化
最近在使用python的qt框架去开发桌面软件,感觉ui的美化挺麻烦的,然后去网上找了不少关于qt界面美化的方法,然后自己总结一下分享出来。
首先是使用qss
文件,其次是使用qt_material
库,最后是qdarkstyle
库
一、qss 文件
首先呢,我们可以直接对我们创建的QMainWindow
对象使用setStyleSheet()
方法,然后传入open
得到的qss
文件就可以设置主题了
先定义一个函数用于读取和返回qss
文件
def load_qss(filename):
with open(filename, 'r', encoding='utf-8') as file:
return file.read()
然后在主函数中传入文件路径就可以了
qss_file = './QSS_files/dark.qss'
window.setStyleSheet(load_qss(qss_file))
这里我分享一些我找到的一些主题
GTRONICK的https://github.com/GTRONICK/QSS/tree/master
还有飞扬青云的https://github.com/feiyangqingyun/QWidgetDemo
因为这个太多了,所以我没有放图片,大家去链接里看就好,或者自己运行一下
然后我把我找到的都放到一起了
链接:https://pan.baidu.com/s/1bw_3KlnzketclcjwNEL4hg?pwd=2nuh
提取码:2nuh
二、qt_material 库
qt_material有两种主要的风格,dark和light
使用方法:
首先先安装qt-material
pip install qt-material
然后在python中先导入
from qt_material import apply_stylesheet # 导入
然后在创建完application对象之后,使用
apply_stylesheet(app, theme='dark_blue.xml')
第二个参数theme
就是我们想要的主题,有如下选择:
'dark_amber.xml',
'dark_blue.xml',
'dark_cyan.xml',
'dark_lightgreen.xml',
'dark_pink.xml',
'dark_purple.xml',
'dark_red.xml',
'dark_teal.xml',
'dark_yellow.xml',
'light_amber.xml',
'light_blue.xml',
'light_cyan.xml',
'light_cyan_500.xml',
'light_lightgreen.xml',
'light_pink.xml',
'light_purple.xml',
'light_red.xml',
'light_teal.xml',
'light_yellow.xml'
qt-material的GitHub地址为:https://github.com/UN-GCPDS/qt-material?tab=readme-ov-file
三、qdarkstyle 库
qdarkstyle同样是有light和dark两种风格
使用方法:
首先安装qdarkstyle
pip install qdarkstyle
然后在python中导入
import qdarkstyle
然后在新建完 application 对象之后使用 setStyleSheet
app.setStyleSheet(qdarkstyle.load_stylesheet_pyside6())
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside6))
当然,我这里使用的是pyside6,如果是使用的pyside2,则:
# setup stylesheet
app.setStyleSheet(qdarkstyle.load_stylesheet_pyside2())
# or in new API
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2'))
如果是 pyqt 而是同样的,替换最后的地方就可以了
当然,这里并没有设置主题颜色,我们需要传入另一个参数palette
才可以
app.setStyleSheet(qdarkstyle.load_stylesheet_pyside6())
pa = qdarkstyle.palette.Palette
pa.ID = 'light' # 调色板,可选 'dark', 'light'
app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside6', palette=pa))
然后通过修改pa.ID为light或者dark就可以完成切换
GitHub网址为:https://github.com/ColinDuquesnoy/QDarkStyleSheet
以上就是我找到的python中qt的主题