如果在pyqt应用中使用了.qss的样式文件,打包成exe后,在执行的时候需要去读取本地qss文件,如果这个qss文件不在指定目录就会报错。

Ui.qss长这样
/*
Ubuntu Style Sheet for QT Applications
Author: Jaime A. Quiroga P.
Company: GTRONICK
Last updated: 09/10/2019 (dd/mm/yyyy), 12:31.
Available at: GTRONICK/QSS
*/
QMainWindow {
background-color:#f0f0f0;
}
QCheckBox {
padding:2px;
}
### 此处省略无数字……
}
QToolBox::tab:selected {
color:rgb(81,72,65);
background-color: #ffffff;
}
解决方法:
将qss文件中的字符串值,放到py文件中,做为一个常量,传给pyqt应用
qss.py
qss="""/*
Ubuntu Style Sheet for QT Applications
Author: Jaime A. Quiroga P.
Company: GTRONICK
Last updated: 09/10/2019 (dd/mm/yyyy), 12:31.
Available at: GTRONICK/QSS
*/
QMainWindow {
background-color:#f0f0f0;
}
QCheckBox {
padding:2px;
}
border-width: 1px;
border-style: solid;
border-color:transparent;
color:rgb(17,17,17);
selection-background-color:rgb(236,116,64);
}
### 此处省略无数字……
QToolBox {
color:rgb(81,72,65);
background-color: #ffffff;
}
QToolBox::tab {
color:rgb(81,72,65);
background-color: #ffffff;
}
QToolBox::tab:selected {
color:rgb(81,72,65);
background-color: #ffffff;
}
"""
在pyqt应用主程序中直接引用
from qss import qss
问题解决。