图片需要用多个外框显示不同状态,以下实现两种颜色外框
dashed 设置为虚线 solid设置为实线
void ImgLabel::setBorderColor(QColor color1, QColor color2)
{
m_sColor = converRGB16HexStr(color1);
QString OuterColor = converRGB16HexStr(color2);
QString sBorderStyle = QString("QFrame { border: 3px dashed %1; } "
"QFrame#innerFrame { border-style: solid; border-color: %2; }").arg(OuterColor, m_sColor);
this->setStyleSheet(sBorderStyle);
// 创建内部嵌套的 QFrame
QFrame* innerFrame = new QFrame(this);
innerFrame->setObjectName("innerFrame");
// 设置内部嵌套的 QFrame 位置和大小
int innerMargin = 3; // 内部边距与外部边框宽度保持一致
innerFrame->setGeometry(innerMargin, innerMargin, this->width() - 2 * innerMargin, this->height() - 2 * innerMargin);
}
效果如下: