Размер иконки во всплывающем списке QComboBox

Я пытаюсь сделать простой 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(""));
}

Проблема в том, что цветовой прямоугольник хорошо отображается на кнопке для выбранного в данный момент элемента:

введите описание изображения здесь

Это отображает крошечные для элементов во всплывающем списке:

введите описание изображения здесь

Кажется, что само растровое изображение всегда уменьшается до ширины около 15 пикселей, независимо от того, какой размер я выберу setIconSize,

Я чувствую, что это должно быть очень просто решить, но я пробовал несколько вещей, и ничего не работает … Заранее спасибо за помощь.

Редактировать:

QSS имеет следующее для QComboBox, Я пытался изменить QComboBox::drop-downШирина до 100px, а сама коробка становится больше, значок все еще крошечный.

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;
}

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]