diff --git a/qtpropertybrowser/ColorSchemeComboBox.cpp b/qtpropertybrowser/ColorSchemeComboBox.cpp index f2e099d..0e62bd9 100644 --- a/qtpropertybrowser/ColorSchemeComboBox.cpp +++ b/qtpropertybrowser/ColorSchemeComboBox.cpp @@ -390,6 +390,32 @@ void QtColorSchemeComboBoxPropertyManager::setEnumIcons(QtProperty *property, co emit propertyChanged(property); } +QPixmap QtColorSchemeComboBoxPropertyManager::getColorLabelPixmap(const QVector &colorList, int colorNumber) +{ + int w = 64, h = 32; + QPixmap pixmap(w, h); + QBrush brush(QColor(255, 0, 0)); + pixmap.fill(QColor(255, 0, 0)); + + //QVector newColorList=paiInpolation(colorList,colorNumber); + + + QPainter painter; + painter.begin(&pixmap); + float colorStep = colorNumber * 1. / w; + QPen Pen; + for (int x = 0; x < w; x++) + { + // 色标位置 + int clrIndex = (int)((x)* colorStep); + if (colorList.size() <= x) break; + Pen.setColor(QColor(colorList[clrIndex].color)); + painter.setPen(Pen); + painter.drawLine(x, 0, x, h - 1); + } + painter.end(); + return pixmap; +} void QtColorSchemeComboBoxPropertyManager::setLinear(QtProperty *property) { QStringList enumNames; @@ -408,20 +434,20 @@ void QtColorSchemeComboBoxPropertyManager::setLinear(QtProperty *property) for(int i = 0 ; i < nCount; i++) { - enumNames.push_back(QString::number(i)); + enumNames.push_back(colorList.at(i).schemeName); //colorMap. -// QPixmap pix(rectSize); + QPixmap pix = getColorLabelPixmap(colorList.at(i).colorList, colorList.at(i).colorList.count()); // pix.fill(Qt::white); // QBrush brush(Qt::black); // QPen pen(brush,2, linears.at(i)); // QPainter painter(&pix); // painter.setPen(pen); // painter.drawLine(2,7,500,7); - //enumIcons[i] = QIcon(pix); + enumIcons[i] = QIcon(pix); } setEnumNames(property, enumNames); - //setEnumIcons(property, enumIcons); + setEnumIcons(property, enumIcons); } /*! diff --git a/qtpropertybrowser/ColorSchemeComboBox.h b/qtpropertybrowser/ColorSchemeComboBox.h index b1c6016..d255f54 100644 --- a/qtpropertybrowser/ColorSchemeComboBox.h +++ b/qtpropertybrowser/ColorSchemeComboBox.h @@ -40,6 +40,8 @@ protected: bool IsColorScheme(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); + + QPixmap getColorLabelPixmap(const QVector &colorList, int colorNumber); private: QScopedPointer d_ptr; Q_DECLARE_PRIVATE(QtColorSchemeComboBoxPropertyManager)