В чем разница между qDebug (), используемым как поток и как функция

Я видел биты кода Qt, который использует qDebug, как если бы он был printf()

qDebug( format, ... );

В основном я вижу, как это используется std::cout

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

В чем разница в использовании и когда правильно / лучше использовать один из других? Справка Qt онлайн как-то ссылается на версию функции, но никогда не объясняет ее.

5

Решение

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;

С этим синтаксисом функция возвращает объект QDebug, настроенный для использования типа сообщения QtDebugMsg. Он автоматически помещает один пробел между каждым элементом и выводит новую строку в конце. Он поддерживает много типов C ++ и Qt.

вы можете передать большинство объектов Qt в qDebug () << … и сделать их читабельными

попробуй например qDebug() << QTime::currentTime();

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]