利用QDebug类将一个数据类型(QMap,QList等)转换为字符串。
由于我们使用qDebug打印数据,好像什么数据都能打印到屏幕,由此我们可以利用QDebug类输出重定向到QString中,从而实现数据的字符串序列化。
原型
QDebug::QDebug(QString *string)
两种实现方法
使用QVariant类型作为参数实现。
QString toString(QVariant var)
{
QString string;
QDebug(&string)
return string;
}
使用模板实现(推荐使用)。
template
QString toString(T t)
{
QString string;
QDebug(&string)
return string;
}
使用
小例子
QVariantMap map = {
{"1", 2},
{"3", 4},
};
qDebug()
QStringList list = {"1", "2", "3"};
qDebug()
方法1打印输出:
"QVariant(QVariantMap, QMap((\"1\", QVariant(int, 2))(\"3\", QVariant(int, 4)))) "
"QVariant(QStringList, (\"1\", \"2\", \"3\")) "
方法2打印输出:
"QMap((\"1\", QVariant(int, 2))(\"3\", QVariant(int, 4))) "
"(\"1\", \"2\", \"3\") "
领取专属 10元无门槛券
私享最新 技术干货