From b391a7e95963a14f22472df014e5a9ef007fa5d0 Mon Sep 17 00:00:00 2001 From: "DESKTOP-450PEFP\\mainc" Date: Sat, 9 May 2026 12:25:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A6=E4=BE=A7=E6=95=B0=E6=8D=AE=E6=A0=91?= =?UTF-8?q?=20=E8=89=B2=E6=9D=BF=E5=B1=9E=E6=80=A7=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E4=B8=8E=E8=89=B2=E6=9D=BF=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- qtpropertybrowser/ColorSchemeComboBox.cpp | 34 ++++++++++++++++++++--- qtpropertybrowser/ColorSchemeComboBox.h | 2 ++ 2 files changed, 32 insertions(+), 4 deletions(-) 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)