注:这是一个很幼稚的问题。
在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()中一样?
或者“对于toString类型,什么是等同于Qt ()”?
发布于 2017-02-27 15:57:06
从QDebug类文档我可以发现它有构造函数
QDebug::QDebug(QString *string)构造一个写入给定字符串的调试流。
所以这应该是可行的:
QString myString;
QDebug stream(&myString);
stream <<"The value was: "<< myVar;发布于 2017-02-27 20:57:41
Qt调试输出的格式和内容不是API的一部分。他们随时都可以改变。每次更新Qt时,您都必须对输出进行审计,否则,除了调试之外,您不能依赖它。这就是为什么API故意使调试输出和字符串之间的转换变得非常麻烦的原因。
相反,为需要的类型实现自己的QTextStream操作符,并使用流构建字符串。
https://stackoverflow.com/questions/42489764
复制相似问题