将QVector3D输出到QString

时间:2011-08-18 18:02:20

标签: c++ qt qstring

我很惊讶地发现QVector3D没有内置的输出x,y和z坐标作为QString的方法。我可以写一个简单的函数来做到这一点,但我想知道是否有一个标准的方法来做它?

2 个答案:

答案 0 :(得分:9)

您可以使用QDebug::QDebug(QString*)和运营商<<来自QDebug:

QString str;
QDebug(&str) << QVector3D(1,2,3);

但是因为该构造函数未声明为显式,所以可以省略QDebug:

QString str;
&str << QVector3D(1,2,3);

(我不知道这是一个错误还是一个功能,如果你可以在Qt的未来版本中依赖第二种形式)。

答案 1 :(得分:0)

如果需要特定的格式,也可以使用QString :: number函数。 不幸的是,我找不到比这种方法更有效的方法

 QString("X:%1Y:%2Z:%3").arg(QString::number(location.x()), QString::number(location.y()), QString::number(location.z()));