我有一个QByteArray存储从GPS接收的数据,这是部分二进制和部分ASCII.我想知道调试提案知道收到了什么,所以我写的qDebug是这样的:
//QByteArray buffer;
//...
qDebug() << "GNSS msg (" << buffer.size() << "): " << buffer;
Run Code Online (Sandbox Code Playgroud)
我在控制台上收到这样的消息:
GNSS msg ( 1774 ): "ygnnsdgk...(many data)..PR085hlHJGOLH
(more data into a new line, which is OK because it is a new GNSS sentence and
probably has a \n at the end of each one) blablabla...
Run Code Online (Sandbox Code Playgroud)
但突然间我得到了一个新的打印迭代.数据尚未删除,已附加.所以新的消息大小例如3204,明显比之前的打印大.但它打印完全相同(但括号之间的新尺寸3204).没有打印新数据,只是与上一条消息相同:
GNSS msg ( 3204 ): "ygnnsdgk...(many data)..PR085hlHJGOLH
(more data into a new line, which is OK because it is a new GNSS sentence …Run Code Online (Sandbox Code Playgroud) 通常当我需要调试某些内容时,使用qDebug()调试器逐步调试而不是逐步调试更容易.问题是qDebug()有时根本不显示输出!与qWarning和相同qCritical.奇怪的是,只有在正常运行项目时才会出现(Ctrl + R),而在调试(F5)时会出现输出.
如何在Qt控制台应用程序中使用qDebug输出到Qt Creator"应用程序输出"窗口?目前qDebug写入控制台窗口,干扰非调试输出.
在Qt GUI应用程序中使用qDebug默认输出到应用程序输出窗口.

我无法使用QDebug在Qt中打印出QString.
以下是一些尝试(无效):
QDebug(letters.toStdString());
QDebug(letters.toLatin1());
QDebug() << letters.toUtf8();
QDebug() << letters.toWCharArray();
QDebug() << letters.toStdString();
QDebug() << letters;
Run Code Online (Sandbox Code Playgroud)
我包括:
#include <QtDebug>
#include <QDebug>
Run Code Online (Sandbox Code Playgroud)
我使用的是Qt 5.2.我还添加CONFIG += console到了我的项目文件中
我的错误是"没有用于调用QDebug :: QDebug()的匹配函数"
我也得到了"QDebug(QByteArray)含糊不清" QDebug(letters.toLatin1());
我已经看到了一些使用qDebug的Qt代码,就像它一样 printf()
qDebug( format, ... );
Run Code Online (Sandbox Code Playgroud)
大多数情况下,我看到它使用像 std::cout
qDebug() << "one " << var_one;
Run Code Online (Sandbox Code Playgroud)
用法有什么不同,何时使用另一个是正确/更好的?Qt帮助在线以某种方式似乎参考功能版本但从未解释它.
在使用Qt和Qt Creator开发程序时,我目前遇到了非常烦人的问题.每当我尝试使用qDebug()一个QCoreApplication或QApplication使用前实例化qDebug(),没有任何输出,无论我在Qt Creator中或从一个普通的shell运行程序(我使用Fedora Linux系统的BTW).例如,即使是以下简单代码也会失败:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "TestOutput!" << endl;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道该怎么办这个问题?先谢谢,马吕斯
qDebug()可以以二进制格式输出数据吗?
例如,我想检查一些状态变化:
unsigned char status;
...
qDebug() << "Status: " << status;
Run Code Online (Sandbox Code Playgroud)
我想以二进制格式生成输出,如:
Status: 1011
Run Code Online (Sandbox Code Playgroud) 我在屏幕上使用qDebug()Qt框架printf.当我从Qt Creator运行应用程序时它工作得很好,但是当我尝试从Windows执行它时cmd它什么也没显示.为什么会这样?
我在Qt编程,但我更习惯于PHP.
因此,考虑到这一点,我如何"回显"或"打印"QStringList或QString的内容以确保内容符合预期?
我正在构建一个GUI应用程序.无论如何打印内容?
显然在PHP中,你可以在一个数组上使用print_r,QStringList有什么类似的东西吗?并且回显一个变量,类似于QString的任何东西?
如果需要,我可以提供代码.
谢谢.
到目前为止,我使用qDebug().noquote(). 这很容易,因为它只需要一个简单的#import <QDebug>
现在我需要将所有内容输出到stdout,但我不知道如何轻松完成。我是这样被教导的:
QTextStream cout(stdout, QIODevice::WriteOnly);
Run Code Online (Sandbox Code Playgroud)
然而,创建一个新对象比一个简单的#import <QDebug>. stdout在qt中处理的好/最不麻烦的方法是什么?
qdebug ×10
qt ×9
c++ ×8
qt-creator ×2
qt5 ×2
debugging ×1
printf ×1
qapplication ×1
qbytearray ×1
qstring ×1
qtconsole ×1
qtcore ×1
qtextstream ×1
stdout ×1