QComboBox *comboBox = new QComboBox(this); QStringList colorNames; //colorNames = QColor::colorNames(); //Если нужны ВСЕ цвета, присутствущие в системе, разремируем данную строчку и ремируем следующую. Иначе, используем только те цвета, которые указаны строчкой ниже colorNames <<"darkGreen"<<"green"<<"gray"<<"red"<<"white"<<"blue"<<"cyan"<<"darkMagenta"<<"yellow"<<"darkRed"<<"black"<<"magenta"; comboBox ->setFocusPolicy(Qt::NoFocus); int size = comboBox ->style()->pixelMetric(QStyle::PM_SmallIconSize); QPixmap pixmap(size,size-5); int con=0; foreach (const QString &colorName, colorNames) { comboBox ->addItem(colorName); //Добавляем название цветов pixmap.fill(QColor(colorName)); QRect rBorder(0,0,size-1,size-6); QPainter p(&pixmap); QPen pen(Qt::lightGray, 1, Qt::SolidLine); p.setPen(pen); p.drawRect(rBorder); comboBox->setItemData(con, pixmap, Qt::DecorationRole);//Добавляем изображение цвета в комбо con=con+1; }
ui.comboBox_Col_1Y->addItem(colorName, color);
ui.comboBox_Col_1Y->addItem("", color);
QColor curColor = qVariantValue<QColor>(ui.comboBox->itemData(ui.comboBox->currentIndex(), Qt::DecorationRole));
comboBox->setItemData(con, pixmap, Qt::DecorationRole);//Добавляем изображение цвета в комбо