首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得普通Qt5类型(如QOpenGLContext )的字符串表示?

如何获得普通Qt5类型(如QOpenGLContext )的字符串表示?
EN

Stack Overflow用户
提问于 2017-02-27 15:39:24
回答 2查看 182关注 0票数 0

注:这是一个很幼稚的问题。

Qt5 C++应用程序中进行调试和日志记录时,打印内部变量的值是有用的,在Qt中,常见的方法是与这样的朋友一起使用qDebug()

代码语言:javascript
运行
复制
qDebug()<<"The value was: "<< myVar;
// Usually works well even for built-in Qt types

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

代码语言:javascript
运行
复制
QString myString= "The value was: "+myVar;
// Usually doesn't work well for built-in Qt types

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

或者“对于toString类型,什么是等同于Qt ()”?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-27 15:57:06

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

代码语言:javascript
运行
复制
QDebug::QDebug(QString *string)

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

所以这应该是可行的:

代码语言:javascript
运行
复制
QString myString;
QDebug stream(&myString);
stream <<"The value was: "<< myVar;
票数 2
EN

Stack Overflow用户

发布于 2017-02-27 20:57:41

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42489764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档