前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt序列化数据

Qt序列化数据

作者头像
Qt君
发布2020-07-07 10:54:02
1.1K0
发布2020-07-07 10:54:02
举报
文章被收录于专栏:跟Qt君学编程

利用QDebug类将一个数据类型(QMap,QList等)转换为字符串。

  由于我们使用qDebug打印数据,好像什么数据都能打印到屏幕,由此我们可以利用QDebug类输出重定向到QString中,从而实现数据的字符串序列化。

原型

代码语言:javascript
复制
QDebug::QDebug(QString *string)

两种实现方法

  1. 使用QVariant类型作为参数实现。
代码语言:javascript
复制
QString toString(QVariant var)
{
    QString string;
    QDebug(&string) << var;

    return string;
}
  1. 使用模板实现(推荐使用)。
代码语言:javascript
复制
template<typename T>
QString toString(T t)
{
    QString string;
    QDebug(&string) << t;

    return string;
}

使用

  • 小例子
代码语言:javascript
复制
QVariantMap map = {
                   {"1", 2},
                   {"3", 4},
                  };
qDebug() << toString(map);

QStringList list = {"1", "2", "3"};
qDebug() << toString(list);
  • 方法1打印输出:
代码语言:javascript
复制
"QVariant(QVariantMap, QMap((\"1\", QVariant(int, 2))(\"3\", QVariant(int, 4)))) "
"QVariant(QStringList, (\"1\", \"2\", \"3\")) "
  • 方法2打印输出:
代码语言:javascript
复制
"QMap((\"1\", QVariant(int, 2))(\"3\", QVariant(int, 4))) "
"(\"1\", \"2\", \"3\") "
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原型
  • 两种实现方法
  • 使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档