简单美化QComboBox,效果如图:
样式:
ColorComboBox::ColorComboBox(QWidget *parent):QComboBox(parent)
{
setStyleSheet("QComboBox { border:2px solid gray; \
border-radius:5px 5px 5px 5px; \
text-align: right;font-size: 14px;font-weight: bold;font-size:16px; } \
QComboBox::drop-down {width:50px;background: transparent;} \
QComboBox::down-arrow {image: url(:/images/icons/down_arrow.png);}");
}
控件初始化:
void ColorComboBox::updateCtrls()
{
this->clear();
//根据缩放比例获取宽高
int w = qRound(width()*widthScale);
int h = qRound(height()*heightScale);
QPixmap pix(w,h);
setIconSize(QSize(pix.width(),pix.height()));
QStringList clrNames = QColor::colorNames();
foreach(auto clr,clrNames){
pix.fill(clr);
addItem(QIcon(pix),clr);
}
}