修改波列显示效果,显示颜色对应旧版logplus 添加波形部分属性修改,左刻度,右刻度,显示名称,显示单位字体属性,色板,变密度颜色级数等属性 修改波形属性修改完后保存文件,读取保存的属性显示效果
234 lines
5.6 KiB
C++
234 lines
5.6 KiB
C++
/*
|
||
* QtColorSchemeComboBox.h
|
||
*
|
||
* Created on: 2013-5-27
|
||
* Author: long
|
||
*/
|
||
|
||
#ifndef QtColorSchemeComboBox_H_
|
||
#define QtColorSchemeComboBox_H_
|
||
#include "qtpropertybrowser.h"
|
||
// #include "PaiColorPub.h"
|
||
#include "qtComboBox.h"
|
||
#include <QSharedMemory>
|
||
|
||
const QString gOrignizationName="PI PlatForm";
|
||
const QString gSchemeNumKey="Scheme Color Number";
|
||
const QString gOneSchemeNameKey="Custom ";
|
||
const QString gOneSchemeControlColorNumKey="Control colornum";
|
||
const QString gOneSchemeColorKey="color";
|
||
|
||
#define PAITOTALCOLOR_MIN 2 // 最小总颜色数目
|
||
#define PAITOTALCOLOR_MAX 65 // 最大总颜色数目
|
||
#define SECTIONVIEW_NUM 255
|
||
|
||
struct Qt_ColorItem
|
||
{
|
||
QRgb color; // 颜色值
|
||
float fromValue; // 对应的振幅开始值
|
||
float toValue; // 对应的振幅的结束值
|
||
char strComments[64]; // 描述信息
|
||
};
|
||
class QtColorItem
|
||
{
|
||
public:
|
||
QtColorItem()
|
||
{
|
||
color=QColor(0,0,0);
|
||
fromValue=toValue=0;
|
||
strComments="";
|
||
}
|
||
QtColorItem(const QColor &color,float value=0)
|
||
{
|
||
this->color=color;
|
||
this->fromValue=this->toValue=value;
|
||
strComments="";
|
||
}
|
||
|
||
QtColorItem(const QtColorItem &other)
|
||
{
|
||
color=other.color;
|
||
fromValue=other.fromValue;
|
||
toValue=other.toValue;
|
||
strComments=other.strComments;
|
||
}
|
||
|
||
QtColorItem & operator=(const QtColorItem &other)
|
||
{
|
||
color=other.color;
|
||
fromValue=other.fromValue;
|
||
toValue=other.toValue;
|
||
strComments=other.strComments;
|
||
return *this;
|
||
}
|
||
QColor color; // 颜色值
|
||
float fromValue; // 对应的振幅开始值
|
||
float toValue; // 对应的振幅的结束值
|
||
QString strComments; // 描述信息
|
||
};
|
||
|
||
/**
|
||
* @class QtSchemeColor
|
||
* @brief 描述一种颜色方案
|
||
*/
|
||
|
||
struct QtScheme_Color
|
||
{
|
||
char schemeName[64];
|
||
int size;
|
||
struct Qt_ColorItem colorList[256];
|
||
bool isDirty;
|
||
bool isCustom;
|
||
int currentIndex; // 当前编辑的位置
|
||
};
|
||
class QtSchemeColor
|
||
{
|
||
public:
|
||
QtSchemeColor()
|
||
{
|
||
schemeName="";
|
||
colorList.clear();
|
||
isDirty=isCustom=false;
|
||
currentIndex=0;
|
||
}
|
||
|
||
QtSchemeColor(const QtSchemeColor &other)
|
||
{
|
||
schemeName=other.schemeName;
|
||
colorList=other.colorList;
|
||
isDirty=other.isDirty;
|
||
isCustom=other.isCustom;
|
||
currentIndex=other.currentIndex;
|
||
}
|
||
|
||
|
||
QtSchemeColor & operator=(const QtSchemeColor &other)
|
||
{
|
||
schemeName=other.schemeName;
|
||
colorList=other.colorList;
|
||
isDirty=other.isDirty;
|
||
isCustom=other.isCustom;
|
||
currentIndex=other.currentIndex;
|
||
return *this;
|
||
}
|
||
|
||
|
||
QString schemeName;
|
||
QVector<QtColorItem> colorList;
|
||
bool isDirty;
|
||
bool isCustom;
|
||
int currentIndex; // 当前编辑的位置
|
||
};
|
||
|
||
|
||
class QTPROPERTYBROWSER_EXPORT QtColorTableData
|
||
{
|
||
public:
|
||
enum
|
||
{
|
||
MAXCUSTOM_SCHEME=12 // 允许的最大颜色自定义方案
|
||
};
|
||
|
||
/**
|
||
* @brief 构造函数
|
||
* @param moduleName 模块名称
|
||
* @param inopSystemColor是否将读取的缺省颜色插值为65中
|
||
*/
|
||
QtColorTableData(const QString &moduleName,bool inopSystemColor)
|
||
{
|
||
m_isSettingSysColor=false;
|
||
m_systemShcemeNum=0;
|
||
m_flMinVal=-1000;
|
||
m_flMaxVal=1000;
|
||
m_modulName=moduleName;
|
||
m_polatationSystemColor=inopSystemColor;
|
||
LoadScheme();
|
||
}
|
||
|
||
static QtColorTableData* getInstance();
|
||
|
||
/**
|
||
* @brief 加载已经存在的颜色方案
|
||
*/
|
||
bool LoadScheme(bool IsReLoad=false);
|
||
|
||
/*
|
||
* @brief 获取颜色方案列表
|
||
* @warning 下一部准备实现不同模块的系统保留和自定义方案
|
||
*/
|
||
QList<QtSchemeColor > &GetSchemeList()
|
||
{
|
||
return m_colorSchemeList;
|
||
}
|
||
|
||
/**
|
||
* @brief 改变当前颜色方案的颜色数
|
||
*/
|
||
bool ChangeColorNum(int colorNum);
|
||
/**
|
||
* @brief 获取当前颜色方案的RGB值
|
||
* @param colornum 需要返回的颜色数目,如果为0按照实际的颜色数目返回
|
||
*/
|
||
QList<QRgb> GetRgb(int colornum=0) const;
|
||
|
||
void ChangeDataRange(QtSchemeColor *scheme);
|
||
|
||
void ReadSettings();
|
||
|
||
/*
|
||
* @brief 设置当前的颜色方案序号
|
||
*
|
||
*/
|
||
void SetCurrentSchemeIndex(int nIndex);
|
||
|
||
/**
|
||
* @brief 获取当前的颜色方案
|
||
*/
|
||
QtSchemeColor* CurrentScheme()
|
||
{
|
||
if(m_currentSchemIndex==-1)
|
||
return NULL;
|
||
return &m_colorSchemeList[m_currentSchemIndex];
|
||
}
|
||
private:
|
||
void FreeColorScheme();
|
||
|
||
// 是否设置系统缺省颜色
|
||
bool m_isSettingSysColor;
|
||
// 当前所有的颜色方案,包括系统方案,自定义方案
|
||
QList<QtSchemeColor> m_colorSchemeList;
|
||
|
||
// 备份的颜色方案
|
||
QList<QtSchemeColor> m_systemSchemeList;
|
||
|
||
QString m_modulName; // 用于保存参数的组织和模块名
|
||
int m_currentSchemIndex; // 当前正在使用的颜色方案
|
||
int m_systemShcemeNum; // 系统缺省的颜色方案数目
|
||
bool m_polatationSystemColor;
|
||
|
||
// 设置数据的最小和最大范围
|
||
float m_flMinVal,m_flMaxVal;
|
||
|
||
QSharedMemory m_SharedMemory;
|
||
};
|
||
|
||
|
||
class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBox:public QtComboBox
|
||
{
|
||
public:
|
||
QtColorSchemeComboBox(QWidget *parent=0);
|
||
virtual ~QtColorSchemeComboBox();
|
||
|
||
void setSchemeColor(const QList<QtSchemeColor > &schemeList);
|
||
|
||
void ShowText(bool showText=true);
|
||
private:
|
||
QPixmap getColorLabelPixmap(const QVector<QtColorItem> &colorList,int colorNumber);
|
||
void freeColorScheme();
|
||
private:
|
||
bool m_isShowText;
|
||
QList<QtSchemeColor > m_colorSchemeList;
|
||
};
|
||
|
||
#endif /* QtColorSchemeComboBox_H_ */
|