问题描述
在银河麒麟操作系统 V10.1中,需要对QMessageBox设置样式,尝试实例化子类重写paintEvent、通过设置Palette、通过样式表设置背景色均无效
原因分析:
银河麒麟、OpenKylin、优麒麟等操作系统均使用UKUI,qt控件部分受到影响
解决方案:
检查环境变量QT_QPA_PLATFORMTHEME是否为ukui
echo $QT_QPA_PLATFORMTHEME
安装qt5ct
sudo apt install qt5ct
在代码中设置环境变量,并设置样式
#include <QApplication>
#include <QMessageBox>
int main(int argc,char*argv[]){
qputenv("QT_QPA_PLATFORMTHEME","qt5ct");
QApplication a(argc,argv);
QMessageBox box;
box.setStyleSheet("background:black");
box.exec();
a.exec();
}