繁体   English   中英

如何获取常见Qt5类型(例如QOpenGLContext)的字符串表示形式?

[英]How to get string representation of common Qt5 types like QOpenGLContext?

注意:这是一个天真的问题。

在调试和登录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

因此,问题是,与将内置流类型传输到qDebug()所获得的等效的内置Qt类型字符串表示法一样,有什么通用的好方法?

还是“ Qt类型与Java toString()等效”是什么?

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

QDebug::QDebug(QString *string)

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

所以这应该工作:

QString myString;
QDebug stream(&myString);
stream <<"The value was: "<< myVar;

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

而是,为所需的类型实现自己的QTextStream运算符,然后使用流构建字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM