ComboBox弹出列表中的图标大小

时间:2014-10-27 18:33:24

标签: c++ qt qcombobox qpixmap qicon

我正在尝试使用一些颜色选项制作一个简单的QComboBox。到目前为止我发现的最简单的方法是为每个项目制作一个QPixmap,用颜色填充它并将其用作项目的图标:

this->colorComboBox = new QComboBox;
this->colorComboBox->setIconSize(QSize(100, 15));
QPixmap colorIcon(100, 15);
this->colorList.push_back(QColor(255, 255, 255, 255));
this->colorList.push_back(QColor(194, 169, 160, 255));
this->colorList.push_back(QColor(235, 206, 157, 255));
this->colorList.push_back(QColor(254, 121,   5, 255));
this->colorList.push_back(QColor(255, 195,  78, 255));
this->colorList.push_back(QColor(111, 203, 172, 255));
for(unsigned int i = 0; i < this->colorList.size(); ++i)
{
  colorIcon.fill(this->colorList.at(i));
  this->colorComboBox->addItem(colorIcon, QString(""));
}

问题是,即使颜色矩形在当前所选项目的按钮上显示良好:

enter image description here

弹出列表中的项目显示很小:

enter image description here

无论我为setIconSize选择什么尺寸,似乎pixmap本身总是缩小到大约15px的宽度。

我觉得这应该是非常简单的解决,但我已经尝试了几件事,似乎没有任何工作......提前感谢您的帮助。

修改

QSS QComboBox有以下内容:QComboBox::drop-down。我尝试将QComboBox { border: 1px solid #101010; background-color: #808080; color: #d0d0d0; border-radius: 4px; selection-color: #f58113; selection-background-color: #808080; show-decoration-selected: 0; } QComboBox:on { padding-top: -10px; padding-left: 4px; } QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 15px; border-left-width: 0px; border-left-color: #000000; border-left-style: solid; border-top-right-radius: 3px; border-bottom-right-radius: 3px; } 的宽度更改为100px,框本身变大,图标仍然很小。

{{1}}

0 个答案:

没有答案