头文件
#ifndef CSTYLE_H
#define CSTYLE_H
#include <QString>
#include <QMap>
class CStyle
{
public:
CStyle();
};
class CWidthStyle
{
public:
QString toString();
void setWidth(int width);
void setMinWidth(int width);
void setMaxWidth(int width);
void setFixedWidth(int width);
private:
QString m_width;
QString m_minWidth;
QString m_maxWidth;
};
class CHeightStyle
{
public:
QString toString();
void setHeight(int Height);
void setMinHeight(int Height);
void setMaxHeight(int Height);
void setFixedHeight(int Height);
private:
QString m_Height;
QString m_minHeight;
QString m_maxHeight;
};
class CColor
{
public:
CColor()=default;
CColor(QString color);
QString toString();
QString getValue();
void setColor(QString color);
void setColor(int r,int g ,int b);
void setColor(int r,int g ,int b,int a);
void setRed();
void setGreen();
void setBlue();
void setWhite();
public:
QString m_color;
};
class BackgroundColorStyle
{
public:
QString toString();
void setColor(CColor color);
public:
QString m_color;
};
class BackgroundImageStyle
{
public:
QString toString();
BackgroundImageStyle(QString filename=QString());
void setImage(QString filename);
private:
QString m_strfilename;
};
class BackgroundRepeatStyle
{
public:
QString toString();
void setNoRepeat();
void setRepeat();
void setRepeatX();
void setNoRepeatY();
private:
QString m_strRepeat;
};
class CBackgroundPosition
{
public:
QString toString();
void setCenter();
void setTop();
void setBottom();
void setLeft();
void setRight();
private:
QString m_strHPosition;
QString m_strVPosition;
};
class CBackgroundAttachment
{
public:
QString toString();
void stetScroll();
void stetFixed();
public:
QString m_strAttachment;
};
class CBackgroundClip
{
public:
QString toString();
void setMargin();
void setBorder();
void setPadding();
void setContent();
public:
QString m_strClip;
};
class CBackgroundOrigin
{
public:
QString toString();
void setMargin();
void setBorder();
void setPadding();
void setContent();
public:
QString m_strOrigin;
};
class CFontStyle
{
public:
QString toString();
void setSize(int size);
void setStyleNomal();
void setStyleItalic();
void setStyleOblique();
void setWeightNomal();
void setWeightBold();
void setWeightBoldValue(int weight=900);
void setFontFamily(QString family="微软雅黑");
public:
QMap<QString,QString> m_style;
};
class CTextAlign
{
public:
QString toString();
void setLeft();
void setRight();
void setTop();
void setBottom();
void setCenter();
void setHLeft();
void setHRight();
void setHCenter();
void setVTop();
void setVBottom();
void setVCenter();
public:
QString m_align;
QString m_strHAlign;
QString m_strVAlign;
};
class CPropertyAlignment
{
public:
QString toString();
void setCenter();
void setRight();
void setLeft();
void setRightCenter();
void setRightTop();
void setRightBottom();
void setLeftCenter();
void setLeftTop();
void setLeftBottom();
void setHCenterTop();
void setHCenterBottom();
void setAlignment(int alignmentflag);
public:
QString m_align;
};
class CTextDecorationStyle
{
public:
QString toString();
void setNone();
void setOverline();
void setLineThrough();
void setUnderline();
private:
QString m_strDecoration;
};
class CPadding
{
public:
QString toString();
void setPadding(int padding);
void setPadding(int top,int right,int bottom,int left);
private:
QString m_strPadding;
};
class CMargin
{
public:
QString toString();
void setMargin(int margin);
void setMargin(int top,int right,int bottom,int left);
private:
QString m_strMargin;
};
class CBorder
{
public:
QString toString();
CBorder()=default;
CBorder(int width,CColor color,QString style = QString("solid") );
void setBorder(int width,CColor color,QString style = QString("solid"));
private:
QString m_strBorderr;
};
class CBorderWidthStyle
{
public:
QString toString();
void setWidth(int width);
void setWidth(int top,int right,int bottom,int left);
void setWidth(int top,int right);
private:
QString m_strWidth;
};
class CBorderStyle
{
public:
QString toString();
void setSolid();
void setStyle(QString style);
void setStyle(QString top,QString right,QString bottom,QString left);
void setStyle(QString top,QString right);
private:
QString m_strStyle;
};
class CBorderColor
{
public:
QString toString();
void setColor(CColor color);
void setColor(CColor top,CColor right,CColor bottom,CColor left);
void setColor(CColor top,CColor right);
private:
QString m_color;
};
class CBorderRadius
{
public:
QString toString();
void setRadius(int nRadius);
void setRadius(int nHRadius,int nVRadius);
void setRadius(int topleft,int toprRight,int bottomRight,int bottomLeft);
private:
QString m_strRadius;
};
class BorderImage
{
public:
QString toString();
void setImage(QString image);
void setImage(QString image,int slice);
void setImage(QString image,int sliceTop,int sliceRight,int sliceBottom,int sliceLeft,QString HRepeat=QString("stretch"),QString VRepeat=QString("stretch"));
private:
QString m_strBorderImage;
};
#endif
#include "cstyle.h"
#include <QDebug>
CStyle::CStyle()
{
}
QString CWidthStyle::toString()
{
if(!m_width.isEmpty()){
return QString("width:%1px;").arg(m_width);
}
QString width;
if(!m_minWidth.isEmpty()){
width += QString("min-width:%1px;").arg(m_minWidth);
}
if(!m_maxWidth.isEmpty()){
width += QString("max-width:%1px;").arg(m_maxWidth);
}
return width;
}
void CWidthStyle::setWidth(int width)
{
m_minWidth.clear();
m_maxWidth.clear();
m_width = QString::number(width);
}
void CWidthStyle::setMinWidth(int width)
{
m_width.clear();
m_minWidth = QString::number(width);
}
void CWidthStyle::setMaxWidth(int width)
{
m_width.clear();
m_maxWidth = QString::number(width);
}
void CWidthStyle::setFixedWidth(int width)
{
m_width.clear();
m_minWidth = QString::number(width);
m_maxWidth = QString::number(width);
}
QString CHeightStyle::toString()
{
if(!m_Height.isEmpty()){
return QString("height:%1px;").arg(m_Height);
}
QString Height;
if(!m_minHeight.isEmpty()){
Height += QString("min-height:%1px;").arg(m_minHeight);
}
if(!m_maxHeight.isEmpty()){
Height += QString("max-height:%1px;").arg(m_maxHeight);
}
return Height;
}
void CHeightStyle::setHeight(int Height)
{
m_minHeight.clear();
m_maxHeight.clear();
m_Height = QString::number(Height);
}
void CHeightStyle::setMinHeight(int Height)
{
m_Height.clear();
m_minHeight = QString::number(Height);
}
void CHeightStyle::setMaxHeight(int Height)
{
m_Height.clear();
m_maxHeight = QString::number(Height);
}
void CHeightStyle::setFixedHeight(int Height)
{
m_Height.clear();
m_minHeight = QString::number(Height);
m_maxHeight = QString::number(Height);
}
CColor::CColor(QString color)
{
this->setColor(color);
}
QString CColor::toString()
{
return QString("color:%1;").arg(m_color);
}
QString CColor::getValue()
{
return m_color;
}
void CColor::setColor(QString color)
{
m_color = color;
}
void CColor::setColor(int r, int g, int b)
{
m_color = QString("rgb(%1,%2,%3)").arg(r).arg(g).arg(b);
}
void CColor::setColor(int r, int g, int b, int a)
{
m_color = QString("rgba(%1,%2,%3,%4)").arg(r).arg(g).arg(b).arg(a);
}
void CColor::setRed()
{
m_color = "red";
}
void CColor::setGreen()
{
m_color = "green";
}
void CColor::setBlue()
{
m_color = "blue";
}
void CColor::setWhite()
{
m_color = "white";
}
QString CFontStyle::toString()
{
QString str;
auto it = m_style.begin();
while(it != m_style.end()){
QString item = QString("%1:%2;").arg(it.key()).arg(it.value());
str += item;
it++;
}
return str;
}
QString BackgroundColorStyle::toString()
{
if(m_color.isEmpty()){
qDebug()<<m_color<<"isEmpty";
return QString();
}
return QString("background-color:%1;").arg(m_color);
}
void BackgroundColorStyle::setColor(CColor color)
{
m_color= color.getValue();
}
QString BackgroundImageStyle::toString()
{
if(m_strfilename.isEmpty()){
return QString();
}
return QString("background-image:url(%1);").arg(m_strfilename);
}
BackgroundImageStyle::BackgroundImageStyle(QString filename)
:m_strfilename(filename)
{
}
void BackgroundImageStyle::setImage(QString filename)
{
m_strfilename = filename;
}
QString BackgroundRepeatStyle::toString()
{
if(m_strRepeat.isEmpty()){
return QString();
}
return QString("background-repeat:%1;").arg(m_strRepeat);
}
void BackgroundRepeatStyle::setNoRepeat()
{
m_strRepeat = "no-repeat";
}
void BackgroundRepeatStyle::setRepeat()
{
m_strRepeat.clear();
}
void BackgroundRepeatStyle::setRepeatX()
{
m_strRepeat = "repeat-x";
}
void BackgroundRepeatStyle::setNoRepeatY()
{
m_strRepeat = "repeat-y";
}
QString CBackgroundPosition::toString()
{
if(m_strHPosition.isEmpty() && m_strVPosition.isEmpty()){
return QString();
}
return QString("background-position:%1 %2;").arg(m_strHPosition).arg(m_strVPosition);
}
void CBackgroundPosition::setCenter()
{
m_strHPosition = "center";
m_strVPosition = "center";
}
void CBackgroundPosition::setTop()
{
m_strVPosition = "top";
}
void CBackgroundPosition::setBottom()
{
m_strVPosition = "bottom";
}
void CBackgroundPosition::setLeft()
{
m_strHPosition = "left";
}
void CBackgroundPosition::setRight()
{
m_strHPosition = "right";
}
void CFontStyle::setSize(int size)
{
m_style["font-size"]=QString("%1px").arg(size);
}
void CFontStyle::setStyleNomal()
{
m_style["font-style"]="normal";
}
void CFontStyle::setStyleItalic()
{
m_style["font-style"]="italic";
}
void CFontStyle::setStyleOblique()
{
m_style["font-style"]="oblique";
}
void CFontStyle::setWeightNomal()
{
m_style["font-weight"]="normal";
}
void CFontStyle::setWeightBold()
{
m_style["font-weight"]="bold";
}
void CFontStyle::setWeightBoldValue(int weight)
{
m_style["font-weight"]=QString::number(weight);
}
void CFontStyle::setFontFamily(QString family)
{
m_style["font-family"] =QString("\"%1\"").arg(family);
}
QString CTextAlign::toString()
{
if(!m_align.isEmpty()){
return QString("text-align:%1;").arg(m_align);
}
if(m_strHAlign.isEmpty()){
m_strHAlign = "center";
}
if(m_strVAlign.isEmpty()){
m_strVAlign = "center";
}
return QString("text-align:%1 %2;").arg(m_strHAlign).arg(m_strVAlign);
}
void CTextAlign::setLeft()
{
m_align = "left";
}
void CTextAlign::setRight()
{
m_align = "right";
}
void CTextAlign::setTop()
{
m_align = "top";
}
void CTextAlign::setBottom()
{
m_align = "bottom";
}
void CTextAlign::setCenter()
{
m_align = "center";
}
void CTextAlign::setHLeft()
{
m_strHAlign = "left";
}
void CTextAlign::setHRight()
{
m_strHAlign = "right";
}
void CTextAlign::setHCenter()
{
m_strHAlign = "center";
}
void CTextAlign::setVTop()
{
m_strVAlign = "top";
}
void CTextAlign::setVBottom()
{
m_strVAlign = "bottom";
}
void CTextAlign::setVCenter()
{
m_strVAlign = "center";
}
QString CPropertyAlignment::toString()
{
if(m_align.isEmpty()){
return QString();
}
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
return QString("qproperty-alignment:\"%1\";").arg(m_align);
#else
return QString("qproperty-alignment:%1;").arg(m_align);
#endif
}
void CPropertyAlignment::setCenter()
{
this->setAlignment(Qt::AlignCenter);
}
void CPropertyAlignment::setRight()
{
this->setAlignment(Qt::AlignRight);
}
void CPropertyAlignment::setLeft()
{
this->setAlignment(Qt::AlignLeft);
}
void CPropertyAlignment::setRightCenter()
{
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
m_align = "AlignRight|AlignCenter";
#else
this->setAlignment(Qt::AlignRight|Qt::AlignCenter);
#endif
}
void CPropertyAlignment::setRightTop()
{
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
m_align = "AlignRight|AlignTop";
#else
this->setAlignment(Qt::AlignRight|Qt::AlignTop);
#endif
}
void CPropertyAlignment::setRightBottom()
{
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
m_align = "AlignRight|AlignBottom";
#else
this->setAlignment(Qt::AlignRight|Qt::AlignBottom);
#endif
}
void CPropertyAlignment::setLeftCenter()
{
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
m_align = "AlignLeft|AlignCenter";
#else
this->setAlignment(Qt::AlignLeft|Qt::AlignCenter);
#endif
}
void CPropertyAlignment::setLeftTop()
{
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
m_align = "AlignLeft|AlignTop";
#else
this->setAlignment(Qt::AlignLeft|Qt::AlignTop);
#endif
}
void CPropertyAlignment::setLeftBottom()
{
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
m_align = "AlignLeft|AlignBottom";
#else
this->setAlignment(Qt::AlignLeft|Qt::AlignBottom);
#endif
}
void CPropertyAlignment::setHCenterTop()
{
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
m_align = "AlignHCenter|AlignTop";
#else
this->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
#endif
}
void CPropertyAlignment::setHCenterBottom()
{
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
m_align = "AlignHCenter|AlignBottom";
#else
this->setAlignment(Qt::AlignHCenter|Qt::AlignBottom);
#endif
}
void CPropertyAlignment::setAlignment(int alignmentflag)
{
qDebug()<<alignmentflag<<(int)(Qt::AlignCenter);
#if (QT_VERSION <= QT_VERSION_CHECK(6,0,0))
switch (alignmentflag) {
case Qt::AlignLeft:
m_align = "AlignLeft";
break;
case Qt::AlignRight:
m_align = "AlignRight";
break;
case Qt::AlignHCenter:
m_align = "AlignHCenter";
break;
case Qt::AlignJustify:
m_align = "AlignJustify";
break;
case Qt::AlignAbsolute:
m_align = "AlignAbsolute";
break;
case Qt::AlignHorizontal_Mask:
m_align = "AlignHorizontal_Mask";
break;
case Qt::AlignTop:
m_align = "AlignTop";
break;
case Qt::AlignBottom:
m_align = "AlignBottom";
break;
case Qt::AlignVCenter:
m_align = "AlignVCenter";
break;
case Qt::AlignBaseline:
m_align = "AlignBaseline";
break;
case Qt::AlignVertical_Mask:
m_align = "AlignBaseline";
break;
case Qt::AlignCenter:
m_align = "AlignCenter";
break;
default:
break;
}
#else
m_align = QString::number(alignmentflag);
#endif
}
QString CTextDecorationStyle::toString()
{
if(m_strDecoration.isEmpty()){
return QString();
}
return QString("text-decoration:%1;").arg(m_strDecoration);
}
void CTextDecorationStyle::setNone()
{
m_strDecoration = "none";
}
void CTextDecorationStyle::setOverline()
{
m_strDecoration = "overline";
}
void CTextDecorationStyle::setLineThrough()
{
m_strDecoration = "line-through";
}
void CTextDecorationStyle::setUnderline()
{
m_strDecoration = "underline";
}
QString CBorderWidthStyle::toString()
{
return m_strWidth;
}
void CBorderWidthStyle::setWidth(int width)
{
m_strWidth = QString("border-width:%1px;").arg(width);
}
void CBorderWidthStyle::setWidth(int top, int right, int bottom, int left)
{
m_strWidth = QString("border-width:%1px %2px %3px %4px;").arg(top).arg(right).arg(bottom).arg(left);
}
void CBorderWidthStyle::setWidth(int top, int right)
{
m_strWidth = QString("border-width:%1px %2px;").arg(top).arg(right);
}
QString CBorderStyle::toString()
{
return m_strStyle;
}
void CBorderStyle::setSolid()
{
m_strStyle = QString("border-style:solid;");
}
void CBorderStyle::setStyle(QString style)
{
m_strStyle = QString("border-style:%1;").arg(style);
}
void CBorderStyle::setStyle(QString top, QString right, QString bottom, QString left)
{
m_strStyle = QString("border-style:%1 %2 %3 %4;").arg(top).arg(right).arg(bottom).arg(left);
}
void CBorderStyle::setStyle(QString top, QString right)
{
m_strStyle = QString("border-style:%1 %2;").arg(top).arg(right);
}
QString CBorderColor::toString()
{
return m_color;
}
void CBorderColor::setColor(CColor color)
{
m_color = QString("border-color:%1;").arg(color.getValue());
}
void CBorderColor::setColor(CColor top, CColor right, CColor bottom, CColor left)
{
m_color = QString("border-color:%1 %2 %3 %4;").arg(top.getValue()).arg(right.getValue()).arg(bottom.getValue()).arg(left.getValue());
}
void CBorderColor::setColor(CColor top, CColor right)
{
m_color = QString("border-color:%1 %2;").arg(top.getValue()).arg(right.getValue());
}
QString CBorderRadius::toString()
{
return m_strRadius;
}
void CBorderRadius::setRadius(int nRadius)
{
m_strRadius =QString("border-radius:%1px;").arg(nRadius);
}
void CBorderRadius::setRadius(int nHRadius, int nVRadius)
{
m_strRadius =QString("border-radius:%1px %2px;").arg(nHRadius).arg(nVRadius);
}
void CBorderRadius::setRadius(int topleft, int toprRight, int bottomRight, int bottomLeft)
{
m_strRadius =QString("border-top-left-radius:%1px;").arg(topleft);
m_strRadius +=QString("border-top-right-radius:%1px;").arg(toprRight);
m_strRadius +=QString("border-bottom-right-radius:%1px;").arg(bottomRight);
m_strRadius +=QString("border-bottom-left-radius:%1px;").arg(bottomLeft);
}
QString BorderImage::toString()
{
return m_strBorderImage;
}
void BorderImage::setImage(QString image)
{
m_strBorderImage = QString("border-image:url(%1);").arg(image);
}
void BorderImage::setImage(QString image, int slice)
{
m_strBorderImage = QString("border-image:url(%1) %2 stretch stretch;").arg(image).arg(slice);
}
void BorderImage::setImage(QString image, int sliceTop, int sliceRight, int sliceBottom, int sliceLeft, QString HRepeat, QString VRepeat)
{
m_strBorderImage = QString("border-image:url(%1) %2 %3 %4 %5 %6 %7;").arg(image).arg(sliceTop).arg(sliceRight).arg(sliceBottom).arg(sliceLeft)
.arg(HRepeat).arg(VRepeat);
}
QString CBorder::toString()
{
return m_strBorderr;
}
CBorder::CBorder(int width, CColor color, QString style)
{
this->setBorder(width,color,style);
}
void CBorder::setBorder(int width, CColor color, QString style)
{
m_strBorderr = QString("border:%1px %2 %3;").arg(width).arg(style).arg(color.getValue());
}
QString CPadding::toString()
{
return m_strPadding;
}
void CPadding::setPadding(int padding)
{
m_strPadding = QString("padding:%1px;").arg(padding);
}
void CPadding::setPadding(int top, int right, int bottom, int left)
{
m_strPadding = QString("padding:%1px %2 %3 %4;").arg(top).arg(right).arg(bottom).arg(left);
}
QString CMargin::toString()
{
return m_strMargin;
}
void CMargin::setMargin(int margin)
{
m_strMargin = QString("margin:%1px;").arg(margin);
}
void CMargin::setMargin(int top, int right, int bottom, int left)
{
m_strMargin = QString("margin:%1px %2 %3 %4;").arg(top).arg(right).arg(bottom).arg(left);
}
QString CBackgroundAttachment::toString()
{
return QString("background-attachment:%1;").arg(m_strAttachment);
}
void CBackgroundAttachment::stetScroll()
{
m_strAttachment = "scroll";
}
void CBackgroundAttachment::stetFixed()
{
m_strAttachment = "fixed";
}
QString CBackgroundClip::toString()
{
return m_strClip;
}
void CBackgroundClip::setMargin()
{
m_strClip = QString("background-clip:margin;");
}
void CBackgroundClip::setBorder()
{
m_strClip = QString("background-clip:border;");
}
void CBackgroundClip::setPadding()
{
m_strClip = QString("background-clip:padding;");
}
void CBackgroundClip::setContent()
{
m_strClip = QString("background-clip:content;");
}
QString CBackgroundOrigin::toString()
{
return m_strOrigin;
}
void CBackgroundOrigin::setMargin()
{
m_strOrigin = QString("background-origin:margin;");
}
void CBackgroundOrigin::setBorder()
{
m_strOrigin = QString("background-origin:border;");
}
void CBackgroundOrigin::setPadding()
{
m_strOrigin = QString("background-origin:padding;");
}
void CBackgroundOrigin::setContent()
{
m_strOrigin = QString("background-origin:content;");
}
圆图
border-image: url(:/photo.jpg);
min-width: 100px;
max-width: 100px;
min-height: 100px;
max-height: 100px;
border-radius:50px;
border-width: 0 0 0 0;