165 lines
4.7 KiB
C
165 lines
4.7 KiB
C
|
|
/**
|
|||
|
|
* @file PaiHtmlProperties.h
|
|||
|
|
* @brief 组装属性信息成Html类的定义
|
|||
|
|
* @date 2012-03-22
|
|||
|
|
*/
|
|||
|
|
#ifndef PAI_FRAME_IOBJECTMODEL_PAIHTMLPROPERTIES_H
|
|||
|
|
#define PAI_FRAME_IOBJECTMODEL_PAIHTMLPROPERTIES_H
|
|||
|
|
|
|||
|
|
#include <QString>
|
|||
|
|
#include <QMap>
|
|||
|
|
#include <QColor>
|
|||
|
|
#include "Property.h"
|
|||
|
|
#include "Turtle.h"
|
|||
|
|
|
|||
|
|
namespace pai
|
|||
|
|
{
|
|||
|
|
namespace objectmodel
|
|||
|
|
{
|
|||
|
|
/**
|
|||
|
|
* @class PaiHtmlProperties
|
|||
|
|
* @brief 组装属性信息成Html
|
|||
|
|
*/
|
|||
|
|
class PAI_OBJECTMODEL_EXPORT PaiHtmlProperties
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
* @param[in] tableWithPercent 表格宽度百分比
|
|||
|
|
*/
|
|||
|
|
PaiHtmlProperties(const int tableWithPercent = 0);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 通过html来构造该类
|
|||
|
|
* @param[in] html 必须是从该类GetHtml()函数获得的html
|
|||
|
|
*/
|
|||
|
|
PaiHtmlProperties(const QString & html);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 构造函数
|
|||
|
|
* @param[in] icon 图标
|
|||
|
|
* @param[in] mainTitle 主标题
|
|||
|
|
* @param[in] subTitle 副标题
|
|||
|
|
* @param[in] tableWithPercent 表格宽度百分比
|
|||
|
|
*/
|
|||
|
|
PaiHtmlProperties(const QString & icon,
|
|||
|
|
const QString & mainTitle,
|
|||
|
|
const QString & subTitle,
|
|||
|
|
const int tableWithPercent = 0);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 虚析构函数
|
|||
|
|
*/
|
|||
|
|
virtual ~PaiHtmlProperties();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 添加一条记录,占一行两列
|
|||
|
|
* @param[in] content 内容
|
|||
|
|
* @param[in] isHtml 参数中是否含有Html
|
|||
|
|
*/
|
|||
|
|
void AddItem(const QString & content, bool isHtml = false);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 添加一条记录
|
|||
|
|
* @param[in] name 记录名
|
|||
|
|
* @param[in] content 内容
|
|||
|
|
* @param[in] isHtml 参数中是否含有Html
|
|||
|
|
* @note content 参数请用QString类型,不要用char*,以免与其它AddItem函数产生混乱
|
|||
|
|
*/
|
|||
|
|
void AddItem(const QString & name, const QString & content, bool isHtml = false);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 添加一条横线做分隔符
|
|||
|
|
* @param[in] dashed 是否为虚线风格
|
|||
|
|
* @param[in] newTable 是否为接下来的文本创建新的表格。
|
|||
|
|
* false: 默认,不创建新的表格,接下来的文本会显示在同一个表格,这样可以使得上下文本列对齐
|
|||
|
|
* true: 创建新的表格,接下来的文本会显示在新的表格,这个可以在上下表格列宽度需求不同时使用。
|
|||
|
|
*/
|
|||
|
|
void AddSeparator(bool dashed = false, bool newTable = false);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 获得组装后的html字符窗
|
|||
|
|
* @return 组装后的html字符窗
|
|||
|
|
*/
|
|||
|
|
QString GetHtml() const;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 获得组装后的html格式的属性窗
|
|||
|
|
* @param[in] propertyGroup 属性组
|
|||
|
|
* @return 组装后的html字符窗
|
|||
|
|
*/
|
|||
|
|
QString GetHtml(const std::vector< std::vector< pai::ios::property::PropertyItem > > & propertyGroup);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 设置名字背景颜色
|
|||
|
|
* @param[in] color 背景颜色
|
|||
|
|
*/
|
|||
|
|
void SetNameBackgroundColor(const QColor & color);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 设置字体大小
|
|||
|
|
* @param[in] fontSize 字体大小
|
|||
|
|
*/
|
|||
|
|
void SetFontSize(const int fontSize);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 设置名字颜色
|
|||
|
|
* @param[in] nameColor 名字颜色
|
|||
|
|
*/
|
|||
|
|
void SetNameColor(const QColor & nameColor);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 设置名字列宽度
|
|||
|
|
* @param[in] nameWidth 名字列宽度
|
|||
|
|
*/
|
|||
|
|
void SetNameWidth(int nameWidth);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 设置字体加粗
|
|||
|
|
* @param[in] fontWeight 加粗系数
|
|||
|
|
*
|
|||
|
|
*/
|
|||
|
|
void SetFontWeight(int fontWeight);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 设置行高
|
|||
|
|
* @param[in] lineHeight 高度
|
|||
|
|
*/
|
|||
|
|
void SetLineHeight(int lineHeight);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
/**
|
|||
|
|
* @brief 用 替换字符转中的空格,因当有空格时,有时会出现自动换行的现象
|
|||
|
|
* @param[in] replace 要替换的字符串
|
|||
|
|
* @return 替换后的字符串
|
|||
|
|
*/
|
|||
|
|
QString ReplaceToNBSP(const QString & replace);
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* @brief 插入item
|
|||
|
|
* @param[in] item 需要插入item
|
|||
|
|
*/
|
|||
|
|
void InsertItem(const QString & item);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief 保存变量
|
|||
|
|
*/
|
|||
|
|
void Init();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
QString m_html; ///< 记录html字符串
|
|||
|
|
QColor m_NameBackgroundColor; ///< 名字列的背景颜色
|
|||
|
|
int m_FontSize; ///< 字体大小
|
|||
|
|
QColor m_NameColor; ///< 名字颜色
|
|||
|
|
int m_NameWidth; ///< 名字列宽度
|
|||
|
|
int m_TableWidth; ///< 分隔线下的表格宽度
|
|||
|
|
int m_FontWeight; ///< 字体加粗
|
|||
|
|
int m_LineHeight; ///< 行高
|
|||
|
|
QMap< pai::ios::property::ItemUnit, QString > m_PropertyUnitMap; ///< 属性单位Map
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif ///< PAI_FRAME_IOBJECTMODEL_PAIHTMLPROPERTIES_H
|