logplus/qtpropertybrowser/ColorSchemeComboBox.h
DESKTOP-450PEFP\mainc 506cecf05c 添加 左侧属性色板属性的实现,显示色板列表
修改波列显示效果,显示颜色对应旧版logplus
添加波形部分属性修改,左刻度,右刻度,显示名称,显示单位字体属性,色板,变密度颜色级数等属性
修改波形属性修改完后保存文件,读取保存的属性显示效果
2026-02-04 12:16:25 +08:00

118 lines
3.7 KiB
C++

#ifndef COLORSCHEMACOMOBOX_H
#define COLORSCHEMACOMOBOX_H
#include <QMap>
#include <QList>
// #include <QtGui/QComboBox>
#include "qtpropertybrowser.h"
#include "qteditorfactory.h"
#include "QtColorSchemeComboBox.h"
//const QSize rectSize(200,15);
QT_BEGIN_NAMESPACE
class QtColorSchemeComboBoxFactoryPrivate;
class QtColorSchemeComboBoxPropertyManagerPrivate;
class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxPropertyManager : public QtAbstractPropertyManager
{
Q_OBJECT
public:
QtColorSchemeComboBoxPropertyManager(QObject *parent = 0);
~QtColorSchemeComboBoxPropertyManager();
int value(const QtProperty *property) const;
QStringList enumNames(const QtProperty *property) const;
QMap<int, QIcon> enumIcons(const QtProperty *property) const;
public Q_SLOTS:
void setValue(QtProperty *property, int val, bool islinestyle);
void setEnumNames(QtProperty *property, const QStringList &names);
void setEnumIcons(QtProperty *property, const QMap<int, QIcon> &icons);
void setLinear(QtProperty *property);
Q_SIGNALS:
void valueChanged(QtProperty *property, int val,bool islineStyle);
void enumNamesChanged(QtProperty *property, const QStringList &names);
void enumIconsChanged(QtProperty *property, const QMap<int, QIcon> &icons);
protected:
QString valueText(const QtProperty *property) const;
QIcon valueIcon(const QtProperty *property) const;
bool IsColorScheme(const QtProperty *property) const;
virtual void initializeProperty(QtProperty *property);
virtual void uninitializeProperty(QtProperty *property);
private:
QScopedPointer<QtColorSchemeComboBoxPropertyManagerPrivate> d_ptr;
Q_DECLARE_PRIVATE(QtColorSchemeComboBoxPropertyManager)
Q_DISABLE_COPY(QtColorSchemeComboBoxPropertyManager)
};
class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxPropertyManagerPrivate
{
QtColorSchemeComboBoxPropertyManager *q_ptr;
Q_DECLARE_PUBLIC(QtColorSchemeComboBoxPropertyManager)
public:
struct Data
{
Data() : val(-1) {}
int val;
QStringList enumNames;
QMap<int, QIcon> enumIcons;
};
typedef QMap<const QtProperty *, Data> PropertyValueMap;
PropertyValueMap m_values;
bool m_pIsColorScheme;
};
class QtColorSchemeComboBoxFactoryPrivate;
class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxFactory : public QtAbstractEditorFactory<QtColorSchemeComboBoxPropertyManager>
{
Q_OBJECT
public:
QtColorSchemeComboBoxFactory(QObject *parent = 0);
~QtColorSchemeComboBoxFactory();
protected:
void connectPropertyManager(QtColorSchemeComboBoxPropertyManager *manager);
QWidget *createEditor(QtColorSchemeComboBoxPropertyManager *manager, QtProperty *property,
QWidget *parent);
void disconnectPropertyManager(QtColorSchemeComboBoxPropertyManager *manager);
//void rendererLinearEnum(QComboBox *editor);
private:
QScopedPointer<QtColorSchemeComboBoxFactoryPrivate> d_ptr;
Q_DECLARE_PRIVATE(QtColorSchemeComboBoxFactory)
Q_DISABLE_COPY(QtColorSchemeComboBoxFactory)
Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int))
Q_PRIVATE_SLOT(d_func(), void slotEnumNamesChanged(QtProperty *,
const QStringList &))
Q_PRIVATE_SLOT(d_func(), void slotEnumIconsChanged(QtProperty *,
const QMap<int, QIcon> &))
Q_PRIVATE_SLOT(d_func(), void slotSetValue(int))
Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
};
class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxFactoryPrivate : public EditorFactoryPrivate<QtColorSchemeComboBox>
{
QtColorSchemeComboBoxFactory *q_ptr;
Q_DECLARE_PUBLIC(QtColorSchemeComboBoxFactory)
public:
void slotPropertyChanged(QtProperty *property, int value);
void slotEnumNamesChanged(QtProperty *property, const QStringList &);
void slotEnumIconsChanged(QtProperty *property, const QMap<int, QIcon> &);
void slotSetValue(int value);
};
QT_END_NAMESPACE
#endif