Я видел биты кода Qt, который использует qDebug, как если бы он был 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;
С этим синтаксисом функция возвращает объект QDebug, настроенный для использования типа сообщения QtDebugMsg. Он автоматически помещает один пробел между каждым элементом и выводит новую строку в конце. Он поддерживает много типов C ++ и Qt.
вы можете передать большинство объектов Qt в qDebug () << … и сделать их читабельными
попробуй например qDebug() << QTime::currentTime();
Других решений пока нет …