7

我见过一些使用 qDebug 的 Qt 代码,就好像它是printf()

qDebug( format, ... );

大多数情况下,我看到它像std::cout

qDebug() << "one " << var_one;

用法有什么区别,何时正确/更好地使用另一种?Qt 在线帮助似乎以某种方式引用了函数版本,但从未解释过。

4

1 回答 1

7

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();

于 2014-04-02T22:31:18.133 回答