我见过一些使用 qDebug 的 Qt 代码,就好像它是printf()
qDebug( format, ... );
大多数情况下,我看到它像std::cout
qDebug() << "one " << var_one;
用法有什么区别,何时正确/更好地使用另一种?Qt 在线帮助似乎以某种方式引用了函数版本,但从未解释过。
qDebug(pattern, object1, object2)
它基本上是老式fprintf(stderr, pattern, object1, object2)
的int x; qDebug("%s\n", x);
. 好吧,GCC 抓住了这一点,但我认为编译器并不总是知道该模式是否合适。
qDebug() << object << ...;
正如文档所述,我总是使用
如果包含 QtDebug,还可以使用更方便的语法:
qDebug() << "Brush:" << myQBrush << "Other value:" << i;
使用此语法,该函数返回一个配置为使用 QtDebugMsg 消息类型的 QDebug 对象。它会自动在每个项目之间放置一个空格,并在末尾输出一个换行符。它支持许多 C++ 和 Qt 类型。
您可以将大部分 Qt 对象传递给 qDebug() << ... 并以可读方式呈现它们
例如尝试qDebug() << QTime::currentTime();