TDataParse Class

TDataParse数据解析类。 负责解析各种格式的数据,并做解析错误分析。 More...

Header: #include <TDataParse>

Static Public Members

QString aesCrypt(int iLevel, int iMode, const QString &iRawText, const QString &iKey, const QVariantMap &iParams = QVariantMap())
QString aesDecrypt(int iLevel, int iMode, const QString &iRawText, const QString &iKey, const QVariantMap &iParams = QVariantMap())
QString aesExpandKey(int iLevel, int iMode, const QString &iKey, bool isEncryptionKey)
QString aesRemovePadding(const QString &iRawText, int iPaddingType = 2)
bool barcode2File(const QString &iBarStr, const QString &iFilename, const QVariantMap &iParams = QVariantMap())
QVariantMap commandStr2Map(const QString &iComStr, const QString &iKeyCaseStr = QString( "" ), TError *oErr = NULL)
QStringList csvLine2List(const QString &iStr, TError *oErr = NULL)
QList<QStringList> csvStr2List(const QString &iStr, TError *oErr = NULL)
QString decodeBase64(const QString &iStr)
QString decryptBase64(const QString &iStr)
bool dmcode2File(const QString &iDmStr, const QString &filename, const QVariantMap &params = QVariantMap())
QString encodeBase64(const QString &iStr)
QString encryptBase64(const QString &iStr)
QString fetchEnumText(const QVariantList &iItems, const QStringList &iValues, const QString &iSeparator = ",")
QVariantList fetchVariantListField(const QVariantList &iVarLst, const QString &iMapKeyStr)
QVariantMap fetchVariantMapField(const QVariantMap &iVarMap, const QStringList &iFieldsStrLst, bool iKeepNoneExistsKeyBol = false)
QVariantMap fetchVariantMapField(const QVariantMap &iVarMap, const QString &iFieldsStr, bool iKeepNoneExistsKeyBol = false)
QString getUuid()
QString getVariantMd5(const QVariant &iVariantVar)
QVariantMap groupBy(const QVariantList &iVarLst, const QString &iKey)
QVariantList headerItem2searchList(const QVariantList &iVarList, const QString &iKeyStr = QString( "search" ), const QString &iCaseSensitivityKeyStr = QString( "caseSensitive" ))
QVariant hoconFiles2Variant(const QStringList &iHoconFileNames, TError *oErr = nullptr)
QString hoconStr2JsonStr(const QString &iHoconStr, bool iCompactBol = false, TError *oErr = nullptr)
QVariant hoconStr2Variant(const QString &iHoconStr, TError *oErr = nullptr)
QVariant jsonStr2Variant(const QString &iStr, TError *oErr = NULL)
double lengthValueConvert(const QString &iValueStr, const QString &iToUnits, int iPrecision = -1)
QVariant margins2Variant(const QMargins &iMargin, const QString &iFormat = "map")
QVariant marginsf2Variant(const QMarginsF &iMargin, const QString &iFormat = "map")
QScriptValue mergeScriptValue(const QScriptValue &iSv1, const QScriptValue &iSv2)
QVariantMap mergeVariantMap(const QVariantMap &iMap1, const QVariantMap &iMap2, bool iIgnoreEmptyValue = false)
QString numberToRoman(int iNum)
QString parseRtf(const QString &iFileName, const QString &iDstDir = QString( "" ), const QVariantMap &iOptions = QVariantMap(), TError *oErr = nullptr)
double pixel2point(int iPixel)
QVariant point2Variant(const QPoint &iPoint, const QString &iFormat = ",")
int point2pixel(double iPoint)
QVariantMap pointSizeOfString(const QString &iText, const QVariantMap &iFontStyle)
QVariant pointf2Variant(const QPointF &iPoint, const QString &iFormat = ",")
bool qrcode2File(const QString &iQrStr, const QString &iPath, const QString &iName, int size = 400)
bool qrcode2FileEx(const QString &iQrStr, const QString &filename, const QVariantMap &params = QVariantMap())
QVariant rect2Variant(const QRect &iRect, const QString &iFormat = "map")
QVariant rectf2Variant(const QRectF &iRect, const QString &iFormat = "map")
QVariantMap removeVariantMapEmptyItem(const QVariantMap &iDataVarMap)
QVariantMap replaceVariantMapEmptyItem(const QVariantMap &iDataVarMap, const QVariant &iReplaceToVar = QVariant())
int romanToNumber(const QString &iRoman)
QString rtf2txt(const QString &iRtfStr)
QScriptValue scriptValueDeepCopy(const QScriptValue &iValue)
QVariantMap simpleXml2Map(const QString &iStr, const QString &iKeyCaseStr = QString( "" ), TError *oErr = NULL)
QVariant size2Variant(const QSize &iSize, const QString &iFormat = "x")
QVariant sizef2Variant(const QSizeF &iSize, const QString &iFormat = "x")
QVariantList sqlArrayData2MapList(const QVariantMap &iDataVarMap)
QColor str2Color(const QString &iStr)
QStringList strCapDollar(const QString &iStr)
QString strEscapeXml(const QString &iStr)
bool strIsInteger(const QString &iStr)
bool strIsNumber(const QString &iStr)
QString strReplaceDollar(const QString &iStr, const QVariantMap &iArgValuesVarMap)
QString stringList2Csv(const QStringList &iStrList)
QVariantMap stringList2VariantMap(const QStringList &iStrLst)
QVariantMap stringMap2VariantMap(QMap<QString, QString> iData)
QString txt2rtf(const QString &iTxtStr)
double valueFromInch(double iValueDbl, const QString &iUnitsStr)
double valueToInch(double iValueDbl, const QString &iUnitsStr)
QString variant2JsonStr(const QVariant &iVariantVar, bool iCompactBol = false)
QMargins variant2Margins(const QVariant &iVar)
QMarginsF variant2MarginsF(const QVariant &iVar)
QPoint variant2Point(const QVariant &iVar)
QPointF variant2PointF(const QVariant &iVar)
QRect variant2Rect(const QVariant &iVar)
QRectF variant2RectF(const QVariant &iVar)
QScriptValue variant2ScriptValue(const QVariant &iVariant, QScriptEngine *iEngine)
QSize variant2Size(const QVariant &iVar)
QSizeF variant2SizeF(const QVariant &iVar)
QVariantMap variantList2Map(const QVariantList &iVarLst)
QStringList variantList2StringList(const QVariantList &iVarList)
QMap<QString, QString> variantMap2StringMap(QVariantMap iData)
QVariant xmlStr2Variant(const QString &iStreamStr, const QStringList &iFlagStrLst = QStringList(), const QString &iRootFlagStr = QString( "" ), const QString &iTextFlagStr = QString( "_DOM_TEXT_" ), const QVariantMap &iOptionVarMap = QVariantMap())

Detailed Description

TDataParse数据解析类。 负责解析各种格式的数据,并做解析错误分析。

Member Function Documentation

[static] QString TDataParse::aesCrypt(int iLevel, int iMode, const QString &iRawText, const QString &iKey, const QVariantMap &iParams = QVariantMap())

AES加密 iLevel 0/1/2 对应AES_128/AES_192/AES_256 iMode 0/1/2/3 对应ECB/CBC/CFB/OFB iRawText 原始字符串 iKey 密码 iParams 其他参数 {} text_type 输出格式 0/1/2 对应 Base64/Base64(Url)/Hex iv initialisation-vector (iv.size is 128 bits (16 Bytes)) padding_type 0/1/2 对应ZERO/PKCS7/ISO

[static] QString TDataParse::aesDecrypt(int iLevel, int iMode, const QString &iRawText, const QString &iKey, const QVariantMap &iParams = QVariantMap())

[static] QString TDataParse::aesExpandKey(int iLevel, int iMode, const QString &iKey, bool isEncryptionKey)

[static] QString TDataParse::aesRemovePadding(const QString &iRawText, int iPaddingType = 2)

[static] bool TDataParse::barcode2File(const QString &iBarStr, const QString &iFilename, const QVariantMap &iParams = QVariantMap())

*

生成条形码,保存为图片 * iStr 字符串 * iPath 图片路径 * iParam 参数


  \\ 参数取自zint_symbol结构,部分struct zint_symbol {
         int symbology;
         int height;
         int whitespace_width;
         int border_width;
         int output_options;
         char fgcolour[10];
         char *fgcolor; // pointer to fgcolour
         char bgcolour[10];
         char *bgcolor; // pointer to bgcolour
         char outfile[256];
         float scale;
         int option_1;
         int option_2;
         int option_3;
         int show_hrt;
         int fontsize;
         int input_mode;
         int eci;
         unsigned char text[128]; // UTF-8
         int rows;
         int width;
         char primary[128];
         unsigned char encoded_data[200][143];
         int row_height[200]; // Largest symbol is 189 x 189 Han Xin
         char errtxt[100];
         unsigned char *bitmap;
         int bitmap_width;
         int bitmap_height;
         unsigned char *alphamap;
         unsigned int bitmap_byte_length;
         float dot_size;
         struct zint_vector *vector;
         struct zint_render *rendered;
         int debug;
     };
     // symbology
     // Tbarcode 7 codes
     #define BARCODE_CODE11          1
     #define BARCODE_C25STANDARD     2
     #define BARCODE_C25MATRIX       2 // Legacy
     #define BARCODE_C25INTER        3
     #define BARCODE_C25IATA         4
     #define BARCODE_C25LOGIC        6
     #define BARCODE_C25IND          7
     #define BARCODE_CODE39          8
     #define BARCODE_EXCODE39        9
     #define BARCODE_EANX            13
     #define BARCODE_EANX_CHK        14
     #define BARCODE_GS1_128         16
     #define BARCODE_EAN128          16 // Legacy
     #define BARCODE_CODABAR         18
     #define BARCODE_CODE128         20
     #define BARCODE_DPLEIT          21
     #define BARCODE_DPIDENT         22
     #define BARCODE_CODE16K         23
     #define BARCODE_CODE49          24
     #define BARCODE_CODE93          25
     #define BARCODE_FLAT            28
     #define BARCODE_DBAR_OMN        29
     #define BARCODE_RSS14           29 // Legacy
     #define BARCODE_DBAR_LTD        30
     #define BARCODE_RSS_LTD         30 // Legacy
     #define BARCODE_DBAR_EXP        31
     #define BARCODE_RSS_EXP         31 // Legacy
     #define BARCODE_TELEPEN         32
     #define BARCODE_UPCA            34
     #define BARCODE_UPCA_CHK        35
     #define BARCODE_UPCE            37
     #define BARCODE_UPCE_CHK        38
     #define BARCODE_POSTNET         40
     #define BARCODE_MSI_PLESSEY     47
     #define BARCODE_FIM             49
     #define BARCODE_LOGMARS         50
     #define BARCODE_PHARMA          51
     #define BARCODE_PZN             52
     #define BARCODE_PHARMA_TWO      53
     #define BARCODE_PDF417          55
     #define BARCODE_PDF417COMP      56
     #define BARCODE_PDF417TRUNC     56 // Legacy
     #define BARCODE_MAXICODE        57
     #define BARCODE_QRCODE          58
     #define BARCODE_CODE128B        60
     #define BARCODE_AUSPOST         63
     #define BARCODE_AUSREPLY        66
     #define BARCODE_AUSROUTE        67
     #define BARCODE_AUSREDIRECT     68
     #define BARCODE_ISBNX           69
     #define BARCODE_RM4SCC          70
     #define BARCODE_DATAMATRIX      71
     #define BARCODE_EAN14           72
     #define BARCODE_VIN             73
     #define BARCODE_CODABLOCKF      74
     #define BARCODE_NVE18           75
     #define BARCODE_JAPANPOST       76
     #define BARCODE_KOREAPOST       77
     #define BARCODE_DBAR_STK        79
     #define BARCODE_RSS14STACK      79 // Legacy
     #define BARCODE_DBAR_OMNSTK     80
     #define BARCODE_RSS14STACK_OMNI 80 // Legacy
     #define BARCODE_DBAR_EXPSTK     81
     #define BARCODE_RSS_EXPSTACK    81 // Legacy
     #define BARCODE_PLANET          82
     #define BARCODE_MICROPDF417     84
     #define BARCODE_USPS_IMAIL      85
     #define BARCODE_ONECODE         85 // Legacy
     #define BARCODE_PLESSEY         86

     // Tbarcode 8 codes
     #define BARCODE_TELEPEN_NUM     87
     #define BARCODE_ITF14           89
     #define BARCODE_KIX             90
     #define BARCODE_AZTEC           92
     #define BARCODE_DAFT            93
     #define BARCODE_DPD             96
     #define BARCODE_MICROQR         97

     // Tbarcode 9 codes
     #define BARCODE_HIBC_128        98
     #define BARCODE_HIBC_39         99
     #define BARCODE_HIBC_DM         102
     #define BARCODE_HIBC_QR         104
     #define BARCODE_HIBC_PDF        106
     #define BARCODE_HIBC_MICPDF     108
     #define BARCODE_HIBC_BLOCKF     110
     #define BARCODE_HIBC_AZTEC      112

     // Tbarcode 10 codes
     #define BARCODE_DOTCODE         115
     #define BARCODE_HANXIN          116

     // Tbarcode 11 codes
     #define BARCODE_MAILMARK        121

     // Zint specific
     #define BARCODE_AZRUNE          128
     #define BARCODE_CODE32          129
     #define BARCODE_EANX_CC         130
     #define BARCODE_GS1_128_CC      131
     #define BARCODE_EAN128_CC       131 // Legacy
     #define BARCODE_DBAR_OMN_CC     132
     #define BARCODE_RSS14_CC        132 // Legacy
     #define BARCODE_DBAR_LTD_CC     133
     #define BARCODE_RSS_LTD_CC      133 // Legacy
     #define BARCODE_DBAR_EXP_CC     134
     #define BARCODE_RSS_EXP_CC      134 // Legacy
     #define BARCODE_UPCA_CC         135
     #define BARCODE_UPCE_CC         136
     #define BARCODE_DBAR_STK_CC     137
     #define BARCODE_RSS14STACK_CC   137 // Legacy
     #define BARCODE_DBAR_OMNSTK_CC  138
     #define BARCODE_RSS14_OMNI_CC   138 // Legacy
     #define BARCODE_DBAR_EXPSTK_CC  139
     #define BARCODE_RSS_EXPSTACK_CC 139 // Legacy
     #define BARCODE_CHANNEL         140
     #define BARCODE_CODEONE         141
     #define BARCODE_GRIDMATRIX      142
     #define BARCODE_UPNQR           143
     #define BARCODE_ULTRA           144
     #define BARCODE_RMQR            145

     // Output options
     #define BARCODE_NO_ASCII        1
     #define BARCODE_BIND            2
     #define BARCODE_BOX             4
     #define BARCODE_STDOUT          8
     #define READER_INIT             16
     #define SMALL_TEXT              32
     #define BOLD_TEXT               64
     #define CMYK_COLOUR             128
     #define BARCODE_DOTTY_MODE      256
     #define GS1_GS_SEPARATOR        512

     // Input data types
     #define DATA_MODE               0
     #define UNICODE_MODE            1
     #define GS1_MODE                2
     #define ESCAPE_MODE             8

[static] QVariantMap TDataParse::commandStr2Map(const QString &iComStr, const QString &iKeyCaseStr = QString( "" ), TError *oErr = NULL)

将一个COMMAND命令字符串转化成一个QHASH结构,err为传入错误类指针。

[static] QStringList TDataParse::csvLine2List(const QString &iStr, TError *oErr = NULL)

解析csv文件的字符串,返回解析到的第一行

[static] QList<QStringList> TDataParse::csvStr2List(const QString &iStr, TError *oErr = NULL)

解析csv文件的字符串,每一行为一个QStringList

[static] QString TDataParse::decodeBase64(const QString &iStr)

对一个字符串进行Base64解码

[static] QString TDataParse::decryptBase64(const QString &iStr)

将一个基于Base64加密的字符串进行解急,返回一个解密后的字符串。

[static] bool TDataParse::dmcode2File(const QString &iDmStr, const QString &filename, const QVariantMap &params = QVariantMap())

*

* iDmStr 编码内容 * filename 文件绝对路径 * params 格式设置参数 * | format | 设置编码格式 | * | margin_size | 设置图形边框宽度 | * | module_size | 设置基本图形的大小 |

[static] QString TDataParse::encodeBase64(const QString &iStr)

对一个字符串进行Base64编码

[static] QString TDataParse::encryptBase64(const QString &iStr)

将一个字符串进行基于Base64的加急,返回一个加密后的字符串。

[static] QString TDataParse::fetchEnumText(const QVariantList &iItems, const QStringList &iValues, const QString &iSeparator = ",")

获取name对应的text值,如果text为空,那么返回name的值。 iSeparator 为分隔符。


  QVariantList tmp1 = {
      QVariantMap{{"name", "name1"},
                  {"text", "text1"}},
      QVariantMap{{"name", "name2"},
                  {"text", ""}}
  };
  QStringList tmp2;
  tmp2 << "name1" << "name2";
  TDataParse::fetchEnumText(tmp1, tmp2, "#");// QString("text1#name2")

[static] QVariantList TDataParse::fetchVariantListField(const QVariantList &iVarLst, const QString &iMapKeyStr)

QList<VariantMap>中查找iMapKeyStr的项。


  QVariantList list;
  list.append(QVariantMap{
                  {"a","1"},
                  {"b","2"}
              });
  list.append(QVariantMap{
                  {"a","11"},
                  {"b","22"}
              });
  TDataParse::fetchVariantListField(list, "a");//["1", "11"]

[static] QVariantMap TDataParse::fetchVariantMapField(const QVariantMap &iVarMap, const QStringList &iFieldsStrLst, bool iKeepNoneExistsKeyBol = false)

筛选map中的项。


  QVariantMap map {
      {"a","1"},
      {"b","2"},
      {"c","3"}
  };
  QStringList keyList;
  keyList << "b" << "c" << "d";
  TDataParse::fetchVariantMapField(map, keyList);\\{"b":"2","c":"3"}
  TDataParse::fetchVariantMapField(map, keyList, true);\\{"b":"2","c":"3","d":null}

[static] QVariantMap TDataParse::fetchVariantMapField(const QVariantMap &iVarMap, const QString &iFieldsStr, bool iKeepNoneExistsKeyBol = false)

筛选map中的项。


  QVariantMap map {
      {"a","1"},
      {"b","2"},
      {"c","3"}
  };
  QString keyList = "b,c,d";
  TDataParse::fetchVariantMapField(map, keyList);//QMap(("b", QVariant(QString, "2"))("c", QVariant(QString, "3")))
  TDataParse::fetchVariantMapField(map, keyList, true);//QMap(("b", QVariant(QString, "2"))("c", QVariant(QString, "3"))("d", QVariant(Invalid)))

[static] QString TDataParse::getUuid()

[static] QString TDataParse::getVariantMd5(const QVariant &iVariantVar)

获取一个值的md5。

[static] QVariantMap TDataParse::groupBy(const QVariantList &iVarLst, const QString &iKey)

*

将iVarLst根据iKey对应的value值来进行分组 *


  QVariantList list;
  list.append(QVariantMap{
                  {"a","1"},
                  {"b","2"}
              });
  list.append(QVariantMap{
                  {"a","11"},
                  {"b","22"}
              });
  TDataParse::groupBy(list, "a");//[{"1": [{"a": "1", "b":"2"}], "11": [{"a": "11", "b":"22"}]]

[static] QVariantList TDataParse::headerItem2searchList(const QVariantList &iVarList, const QString &iKeyStr = QString( "search" ), const QString &iCaseSensitivityKeyStr = QString( "caseSensitive" ))

从TableView或TreeView的HeaderItem列表提取Search List。

[static] QVariant TDataParse::hoconFiles2Variant(const QStringList &iHoconFileNames, TError *oErr = nullptr)

将Hocon文件列表依次覆盖转为QVariant

[static] QString TDataParse::hoconStr2JsonStr(const QString &iHoconStr, bool iCompactBol = false, TError *oErr = nullptr)

将HOCON格式的字符串转为JSON字符串

[static] QVariant TDataParse::hoconStr2Variant(const QString &iHoconStr, TError *oErr = nullptr)

将HOCON格式的字符串转为QVariant

[static] QVariant TDataParse::jsonStr2Variant(const QString &iStr, TError *oErr = NULL)

将一个JSON格式的字符串转换成一个QVariant对象,err为传入错误类指针。

[static] double TDataParse::lengthValueConvert(const QString &iValueStr, const QString &iToUnits, int iPrecision = -1)

单位转换。iUnitsStr支持的格式有:mm(毫米),mil(毫寸),um(微米),in/inch(英寸)。


  QString str = "26mm";
  TDataParse::lengthValueConvert(str, "in", 2);//1.02

[static] QVariant TDataParse::margins2Variant(const QMargins &iMargin, const QString &iFormat = "map")

QMargins格式转换为QStringQVariantMapiFormat 为转换结果的格式,取值要求:转换为大写后值为"STRING" 或 "MAP"。


  TDataParse::margins2Variant(QMargins(1, 2, 3, 4), "String");//QVariant(QString, "left:1, top:2, right:3, bottom:4")
  TDataParse::margins2Variant(QMargins(1, 2, 3, 4), "Map");
  //QVariant(QVariantMap, QMap(("bottom", QVariant(int, 4))("left", QVariant(int, 1))("right", QVariant(int, 3))("top", QVariant(int, 2))))

See also variant2Margins().

[static] QVariant TDataParse::marginsf2Variant(const QMarginsF &iMargin, const QString &iFormat = "map")

QMarginsF格式转换为QStringQVariantMapiFormat 为转换结果的格式,取值要求:转换为大写后值为"STRING" 或 "MAP"。


  TDataParse::marginsf2Variant(QMarginsF(1.1, 2.1, 3.1, 4.1), "String");//QVariant(QString, "left:1.1, top:2.1, right:3.1, bottom:4.1")
  TDataParse::marginsf2Variant(QMarginsF(1, 2, 3, 4), "Map");
  //QVariant(QVariantMap, QMap(("bottom", QVariant(double, 4))("left", QVariant(double, 1))("right", QVariant(double, 3))("top", QVariant(double, 2))))

See also variant2MarginsF().

[static] QScriptValue TDataParse::mergeScriptValue(const QScriptValue &iSv1, const QScriptValue &iSv2)

合并两个QScriptValue。要求要合并的值不能为数组。


  QScriptEngine myEngine;
  QScriptValue myObject = myEngine.newObject();
  myObject.setProperty("a", "1");
  myObject.setProperty("b", "2");

  QScriptValue myObject2 = myEngine.newObject();
  myObject2.setProperty("b", "3");
  myObject2.setProperty("c", "4");
  myObject2.setProperty("e", "");

  qDebug()<<TDataParse::mergeScriptValue(myObject, myObject2).toVariant();
  //QVariant(QVariantMap, QMap(("a", QVariant(QString, "1"))("b", QVariant(QString, "3"))("c", QVariant(QString, "4"))("e", QVariant(QString, ""))))

[static] QVariantMap TDataParse::mergeVariantMap(const QVariantMap &iMap1, const QVariantMap &iMap2, bool iIgnoreEmptyValue = false)

iMap2 插入到 iMap1。插入的 iMap2 的值将会覆盖 iMap1 中相同key的值。 iIgnoreEmptyValue 为是否忽略空值,如果为true,那么value为空的项不会显示。


  QVariantMap tmp1 = {
      {"a", "1"},
      {"b", "2"}
  };
  QVariantMap tmp2 = {
      {"b", "3"},
      {"c", "4"},
      {"d", ""}
  };
  TDataParse::mergeVariantMap(tmp1, tmp2, true);
  //QMap(("a", QVariant(QString, "1"))("b", QVariant(QString, "3"))("c", QVariant(QString, "4")))

[static] QString TDataParse::numberToRoman(int iNum)

数字转罗马数字。


  int num = 53;
  TDataParse::numberToRoman(num);//LIII

[static] QString TDataParse::parseRtf(const QString &iFileName, const QString &iDstDir = QString( "" ), const QVariantMap &iOptions = QVariantMap(), TError *oErr = nullptr)

解析RTF文件 iFileNameiDstDir 目录,返回存放txt和图片的目录 若没有指定iDstDir, 将默认解析到系统的临时目录下


  QString path = TDataParse::parseRtf("D:/1.rtf"); // 默认解析到系统临时目录

  TError err;
  QString path = TDataParse::parseRtf("D:/1.rtf",
      "D:/tmp/",
      QVariantMap { { "ignore_pict", true } },
      &err
  ); // 解析到指定目录,忽略图片

[static] double TDataParse::pixel2point(int iPixel)

像素转换为点数

See also point2pixel().

[static] QVariant TDataParse::point2Variant(const QPoint &iPoint, const QString &iFormat = ",")

QPoint格式转换为QStringQVariantMapiFormat 为转换结果的格式,取值要求:"," 或 转换为大写后值为"MAP"。


  TDataParse::point2Variant(QPoint(1,2), ",");//QVariant(QString, "1,2")
  TDataParse::point2Variant(QPoint(1,2), "map");//QVariant(QVariantMap, QMap(("x", QVariant(int, 1))("y", QVariant(int, 2))))

See also variant2Point().

[static] int TDataParse::point2pixel(double iPoint)

点数转换为像素

See also pixel2point().

[static] QVariantMap TDataParse::pointSizeOfString(const QString &iText, const QVariantMap &iFontStyle)

根据fontstyle设置,获取字符串的宽度、高度

[static] QVariant TDataParse::pointf2Variant(const QPointF &iPoint, const QString &iFormat = ",")

QPointF格式转换为QStringQVariantMapiFormat 为转换结果的格式,取值要求:"," 或 转换为大写后值为"MAP"。


  TDataParse::pointf2Variant(QPointF(1.11,2.11), ",");//QVariant(QString, "1.11,2.11")
  TDataParse::pointf2Variant(QPointF(1.11,2.11), "Map");//QVariant(QVariantMap, QMap(("x", QVariant(double, 1.11))("y", QVariant(double, 2.11))))

See also variant2PointF().

[static] bool TDataParse::qrcode2File(const QString &iQrStr, const QString &iPath, const QString &iName, int size = 400)

iQrStr 用于生成二维码的字符串 iPath 保存编码后图片的路径 iFile 图片的文件名 size 保存图片的大小

[static] bool TDataParse::qrcode2FileEx(const QString &iQrStr, const QString &filename, const QVariantMap &params = QVariantMap())

iQrStr 用于生成二维码的字符串 filename 保存编码后图片的路径 params 其他参数,{"size": 400, "margin": 2, "ec_level": "L/M/Q/H"}

[static] QVariant TDataParse::rect2Variant(const QRect &iRect, const QString &iFormat = "map")

QRect格式转换为QStringQVariantMapiFormat 为转换结果的格式,取值要求:转换为大写后值为"STRING" 或 "MAP"。


  TDataParse::rect2Variant(QRect(QPoint(0,0), QPoint(4,4)), "String");//QVariant(QString, "x1:0, y1:0, x2:4, y2:4, width:5, height:5")
  TDataParse::rect2Variant(QRect(QPoint(0,0), QPoint(4,4)), "Map");
  //QVariant(QVariantMap, QMap(("height", QVariant(int, 5))("width", QVariant(int, 5))("x", QVariant(int, 0))("y", QVariant(int, 0))))

See also variant2Rect().

[static] QVariant TDataParse::rectf2Variant(const QRectF &iRect, const QString &iFormat = "map")

QRect格式转换为QStringQVariantMapiFormat 为转换结果的格式,取值要求:转换为大写后值为"STRING" 或 "MAP"。


  TDataParse::rectf2Variant(QRectF(1.1, 2.2, 3.3, 4.4), "String");//QVariant(QString, "x1:1.1, y1:2.2, x2:4.4, y2:6.6, width:3.3, height:4.4")
  TDataParse::rectf2Variant(QRectF(1.1, 2.2, 3.3, 4.4), "Map");
  //QVariant(QVariantMap, QMap(("height", QVariant(double, 4.4))("width", QVariant(double, 3.3))("x", QVariant(double, 1.1))("y", QVariant(double, 2.2))))

See also variant2RectF().

[static] QVariantMap TDataParse::removeVariantMapEmptyItem(const QVariantMap &iDataVarMap)

移除map中为空的项。


  QVariantMap map {
      {"a","a_value"},
      {"b",QVariant()}
  };
  TDataParse::removeVariantMapEmptyItem(map);//{"a":"a_value"}

[static] QVariantMap TDataParse::replaceVariantMapEmptyItem(const QVariantMap &iDataVarMap, const QVariant &iReplaceToVar = QVariant())

替换map中为空的项。


  QVariantMap map {
      {"a","a_value"},
      {"b",QVariant()}
  };
  TDataParse::replaceVariantMapEmptyItem(map,"replace_value");//{"a":"a_value","b":"replace_value"}

[static] int TDataParse::romanToNumber(const QString &iRoman)

罗马数字转数字。


  QString str = "VI";
  TDataParse::romanToNumber(str);//6

[static] QString TDataParse::rtf2txt(const QString &iRtfStr)

rtf格式转换为txt格式。

[static] QScriptValue TDataParse::scriptValueDeepCopy(const QScriptValue &iValue)

深拷贝。

[static] QVariantMap TDataParse::simpleXml2Map(const QString &iStr, const QString &iKeyCaseStr = QString( "" ), TError *oErr = NULL)

将一个简单的XML字符串转化成一个QMAP结构,err为传入错误类指针。

See also QMap().

[static] QVariant TDataParse::size2Variant(const QSize &iSize, const QString &iFormat = "x")

QSize类型的变量装换成 QStringQVariantMap的形式。 iFormat 为转换结果的格式,取值要求:转换为大写后值为 "X" 或 "MAP"。


  TDataParse::size2Variant(QSize(1,2), "x");//QVariant(QString, "1x2")
  TDataParse::size2Variant(QSize(1,2), "map");//QVariant(QVariantMap, QMap(("height", QVariant(int, 2))("width", QVariant(int, 1))))

See also variant2Size().

[static] QVariant TDataParse::sizef2Variant(const QSizeF &iSize, const QString &iFormat = "x")

QSizeF类型的变量装换成 QStringQVariantMap的形式。 iFormat 为转换结果的格式,取值要求:转换为大写后值为"MAP" 或 "X"。


  TDataParse::sizef2Variant(QSizeF(1.1, 2.2), "x");//QVariant(QString, "1.1x2.2")
  TDataParse::sizef2Variant(QSizeF(1.1, 2.2), "Map");//QVariant(QVariantMap, QMap(("height", QVariant(double, 2.2))("width", QVariant(double, 1.1))))

See also variant2SizeF().

[static] QVariantList TDataParse::sqlArrayData2MapList(const QVariantMap &iDataVarMap)

数据格式转换。


  QVariantList data;
  data.append(QVariant(QVariantList()<<"a1"<<"b1"));
  data.append(QVariant(QVariantList()<<"a2"<<"b2"));
  QVariantMap map {
      {"data",data},
      {"field",QVariantList()<<"a"<<"b"}
  };
  TDataParse::sqlArrayData2MapList(map);//[{"a":"a1","b":"b1"},{"a":"a2","b":"b2"}]

[static] QColor TDataParse::str2Color(const QString &iStr)

字符串转QColor


  QString str = "#111111";
  TDataParse::str2Color(str);

[static] QStringList TDataParse::strCapDollar(const QString &iStr)

提取字符串中的变量。


  QString str = "{\"a\":${p1},\"b\":${p2}}";
  TDataParse::strCapDollar(str);//["p1","p2"]

[static] QString TDataParse::strEscapeXml(const QString &iStr)

xml字符串转义。XML5个转义符 < > & " \ 的转义字符分别如下: &lt; &gt;&amp; &quot; &apos;


  QString str = "<!--?xml version=\"1.0\" encoding=\"UTF-8\"?-->";
  TDataParse::strEscapeXml(str);//&lt;!--?xmlversion=&quot;1.0&quot;encoding=&quot;UTF-8&quot;?--&gt;

[static] bool TDataParse::strIsInteger(const QString &iStr)

判断字符串是否为整数。


  QString str = "1";
  TDataParse::strIsInteger(str);//true
  str = "1.1";
  TDataParse::strIsInteger(str);//false

[static] bool TDataParse::strIsNumber(const QString &iStr)

判断字符串是否为数字。


  QString str = "1";
  TDataParse::strIsNumber(str);//true
  str = "1.1";
  TDataParse::strIsNumber(str);//true

[static] QString TDataParse::strReplaceDollar(const QString &iStr, const QVariantMap &iArgValuesVarMap)

替换字符串中的变量。


  QString str = "{\"a\":${p1},\"b\":${p2}}";
  QVariantMap valueMap {
      {"p1",1},
      {"p2",2}
  };
  TDataParse::strReplaceDollar(str, valueMap);//{"a":1,"b":2}

[static] QString TDataParse::stringList2Csv(const QStringList &iStrList)

QStringList转为一个csv文件格式的字符串

[static] QVariantMap TDataParse::stringList2VariantMap(const QStringList &iStrLst)

将StringList转为Map。


  QStringList list;
  list<<"a"<<"1"<<"b"<<"2";
  TDataParse::stringList2VariantMap(list);//{"a":"1", "b":"2"}

[static] QVariantMap TDataParse::stringMap2VariantMap(QMap<QString, QString> iData)

QMap<QString, QString>转QVariantMap


  QMap<QString, QString> dataMap {
      {"a","1"},
      {"b","2"}
  };
  TDataParse::stringMap2VariantMap(dataMap);//QMap(("a", QVariant(QString, "1"))("b", QVariant(QString, "2")))

See also variantMap2StringMap().

[static] QString TDataParse::txt2rtf(const QString &iTxtStr)

txt格式转换为rtf格式。

[static] double TDataParse::valueFromInch(double iValueDbl, const QString &iUnitsStr)

将英寸转为其它数值。 iUnitsStr支持的格式有:mm(毫米),mil(毫寸),micron/um(微米),sq_mm(平方毫米),sq_mil(平方毫寸),sq_micron/sq_um(平方微米)

[static] double TDataParse::valueToInch(double iValueDbl, const QString &iUnitsStr)

将一个数值转为英寸。 iUnitsStr支持的格式有:mm(毫米),mil(毫寸),micron/um(微米),sq_mm(平方毫米),sq_mil(平方毫寸),sq_micron/sq_um(平方微米)

[static] QString TDataParse::variant2JsonStr(const QVariant &iVariantVar, bool iCompactBol = false)

将一个QVariant转为json字符串。


  TDataParse::variant2JsonStr(QVariantMap{{"a","1"},{"b","2"}});
  //"{\n    \"a\": \"1\",\n    \"b\": \"2\"\n}\n"
  通过工具将结果进行式转换
  {
      "a": "1",
      "b": "2"
  }

  TDataParse::variant2JsonStr(QStringList() << "a" << "b" << "c" << "d");
  //"[\n    \"a\",\n    \"b\",\n    \"c\",\n    \"d\"\n]\n"
  通过工具将结果进行式转换
  ["a", "b", "c", "d"]

  TDataParse::variant2JsonStr(QList<QVariant>() << QVariantMap{{"a","1"},{"b","2"}} << QVariantMap{{"a","1"},{"b","2"}});
  //"[\n    {\n        \"a\": \"1\",\n        \"b\": \"2\"\n    },\n    {\n        \"a\": \"1\",\n        \"b\": \"2\"\n    }\n]\n"
  通过工具将结果进行式转换
  [{
        "a": "1",
        "b": "2"
   },
   {
        "a": "1",
        "b": "2"
   }
  ]

[static] QMargins TDataParse::variant2Margins(const QVariant &iVar)

将输入值转换为QMargins格式。


  TDataParse::variant2Margins(QVariantMap{{"bottom", "1"},{"left", "2"},{"right", "3"},{"top", "4"}});//QMargins(2, 4, 3, 1)

See also margins2Variant().

[static] QMarginsF TDataParse::variant2MarginsF(const QVariant &iVar)

将输入值转化为MarginsF格式。


  TDataParse::variant2MarginsF(QVariantMap{{"bottom", "1.1"},{"left", "2.1"},{"right", "3.1"},{"top", "4.1"}});//QMarginsF(2.1, 4.1, 3.1, 1.1)

See also marginsf2Variant().

[static] QPoint TDataParse::variant2Point(const QVariant &iVar)

将输入值转化为QPoint格式。


  TDataParse::variant2Point("1, 2");//QPoint(1,2)
  TDataParse::variant2Point(QPointF(1,2));//QPoint(1,2)
  TDataParse::variant2Point(QPoint(1,2));//QPoint(1,2)
  TDataParse::variant2Point(QVariantMap{{"x", "2"},{"y", "1"}});//QPoint(2,1)

See also point2Variant().

[static] QPointF TDataParse::variant2PointF(const QVariant &iVar)

将输入值转化为PointF格式。


  TDataParse::variant2PointF("1.11,2.11");/QPointF(1.11,2.11)
  TDataParse::variant2PointF(QPointF(1.11,2.11));//QPointF(1.11,2.11)
  TDataParse::variant2PointF(QPoint(1.11,2.11));//QPointF(1,2)
  TDataParse::variant2PointF(QVariantMap{{"x", "2.11"},{"y", "1.11"}});//QPointF(2.11,1.11)

See also pointf2Variant().

[static] QRect TDataParse::variant2Rect(const QVariant &iVar)

将输入值转化为QRect格式。


  TDataParse::variant2Rect(QVariantMap{{"x", "0"},{"y", "0"},{"width", "3"},{"height", "4"}});//QRect(0,0 3x4)

See also rect2Variant().

[static] QRectF TDataParse::variant2RectF(const QVariant &iVar)

将输入值转化为QRect格式。


  TDataParse::variant2RectF(QVariantMap{{"x", "1.1"},{"y", "1.1"},{"width", "3.1"},{"height", "4.1"}});//QRectF(1.1,1.1 3.1x4.1)

See also rectf2Variant().

[static] QScriptValue TDataParse::variant2ScriptValue(const QVariant &iVariant, QScriptEngine *iEngine)

QVariant转换为QScriptValue


  QScriptEngine myEngine;
  TDataParse::variant2ScriptValue(QVariantMap{{"a","1"},{"b","2"}}, &myEngine).toVariant();
  //QVariant(QVariantMap, QMap(("a", QVariant(QString, "1"))("b", QVariant(QString, "2"))))

  TDataParse::variant2ScriptValue(QVariantList{"a","b","c"}, &myEngine).toVariant();
  //QVariant(QVariantList, (QVariant(QString, "a"), QVariant(QString, "b"), QVariant(QString, "c")))

  TDataParse::variant2ScriptValue(true, &myEngine).toVariant();//QVariant(bool, true)
  TDataParse::variant2ScriptValue(1.11, &myEngine).toVariant();//QVariant(double, 1.11)
  TDataParse::variant2ScriptValue(2, &myEngine).toVariant();//QVariant(double, 2)

[static] QSize TDataParse::variant2Size(const QVariant &iVar)

将输入值转化为QSize格式。


  TDataParse::variant2Size("1x2");//QSize(1, 2)
  TDataParse::variant2Size(QVariantMap{{"height", 2},{"width",1}});//QSize(1, 2)

See also size2Variant().

[static] QSizeF TDataParse::variant2SizeF(const QVariant &iVar)

将输入值转化为QSizeF格式。


  TDataParse::variant2SizeF("1x2");//QSizeF(1, 2)
  TDataParse::variant2SizeF(QSizeF(1,2));//QSizeF(1, 2)
  TDataParse::variant2SizeF(QSize(1,2));//QSizeF(1, 2)
  TDataParse::variant2SizeF(QVariantMap{{"height", "2"},{"width", "1"}});//QSizeF(1, 2)

See also sizef2Variant().

[static] QVariantMap TDataParse::variantList2Map(const QVariantList &iVarLst)

QVariantList转为Map。


  QVariantList list;
  list<<"a"<<"1"<<"b"<<"2";
  TDataParse::variantList2Map(list);//{"a":"1", "b":"2"}

[static] QStringList TDataParse::variantList2StringList(const QVariantList &iVarList)

QVariantList转换为QStringList


  TDataParse::variantList2StringList(QVariantList() << "a" << "b");//QStringList("a", "b")

[static] QMap<QString, QString> TDataParse::variantMap2StringMap(QVariantMap iData)

QVariantMapQMap<QString, QString>,如果QVariant不是QString则转换成" "。


  QVariantMap dataMap {
      {"a","1"},
      {"b",QStringList()<<"b1"<<"b2"}
  };
  TDataParse::variantMap2StringMap(dataMap);//QMap(("a", "1")("b", ""))

[static] QVariant TDataParse::xmlStr2Variant(const QString &iStreamStr, const QStringList &iFlagStrLst = QStringList(), const QString &iRootFlagStr = QString( "" ), const QString &iTextFlagStr = QString( "_DOM_TEXT_" ), const QVariantMap &iOptionVarMap = QVariantMap())

将一个XML格式的字符串转换成一个QVariant对象。 flag_list 为需转换成array的标签列表。 root_flag 为根节点的标签。 text_flag 为文本属性标签。 option 为待选属性。