我很惊讶地发现QVector3D没有内置的输出x,y和z坐标作为QString的方法。我可以写一个简单的函数来做到这一点,但我想知道是否有一个标准的方法来做它?
答案 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()));