QPalette pal;
QBrush brush = pal.window(); //获取window的色值
QColor windowColor = brush.color();
QString stringColor = QString("rgba(%1,%2,%3,%4)")
.arg(windowColor.red())
.arg(windowColor.green())
.arg(windowColor.blue())
.arg(tranValue);
qDebug()<<"stringColor = "<<stringColor;
ui->leftsidebarWidget->setStyleSheet(QString("QWidget#leftsidebarWidget{background-color: %1;\
border: none; border-top-left-radius: 6px; \
border-bottom-left-radius: 6px;}").arg(stringColor));
这样主题改变获取到的色值也会随之改变
写法二:
QColor windowColor = palette().color(QPalette::Window);
QString stringColor = QString("rgba(%1,%2,%3,%4)")
.arg(windowColor.red())
.arg(windowColor.green())
.arg(windowColor.blue())
.arg(1);
这种写法按照道理来讲应该也是可行的,实际也帮助我解决了很多问题,但是在有的情况下获取到的值居然有偏差,原因不详。。。。。。。。。。。