0

注意:这是一个相当幼稚的问题。

Qt5 C++应用程序中调试和登录时,打印内部变量的值很有用,Qt常用的方法是qDebug()与朋友一起使用,如下所示:

qDebug()<<"The value was: "<< myVar;
// Usually works well even for built-in Qt types

这似乎适用于许多内置的 Qt5 特定类型,甚至也适用于指针,但是在我们实际上不是输出日志而是构建字符串的情况下,这变得更加麻烦。

QString myString= "The value was: "+myVar;
// Usually doesn't work well for built-in Qt types

所以问题是,什么是获得内置 Qt 类型的等效字符串表示的一种好的通用方法,就像您将它们流式传输到 qDebug() 一样?

或者“对于类型来说,Java toString() 的等价物是什么Qt”?

4

2 回答 2

2

QDebug 类文档中我可以发现它有构造函数

QDebug::QDebug(QString *string)

构造一个写入给定字符串的调试流

所以这应该工作:

QString myString;
QDebug stream(&myString);
stream <<"The value was: "<< myVar;
于 2017-02-27T15:57:06.833 回答
1

Qt 调试输出的格式内容不是 API 的一部分。他们可以随时改变。每次更新 Qt 时,您都必须审核输出,否则除了调试之外,您不能依赖它。这就是为什么 API 故意让调试输出和字符串之间的转换变得很麻烦。

QTextStream相反,为您需要的类型实现自己的运算符,并使用流来构建字符串。

于 2017-02-27T20:57:41.320 回答