我想用qDebug
或qWarning
方法来编写调用它们的类和方法名。现在我像下面这样写,但对于我申请中的所有类和方法来说,这都是艰苦的工作。有谁知道我该怎么做?
void File::downloadingFinishd()
{
qWarning()<<"File::downloadingFinishd()";//How write this ?without manually doing this?
qDebug()<<"Download was succceed";
}
我想要像android这样的东西,因为我在输出中看到它用不同的颜色编写方法和类名,只需调用qDebug()
使用Q_FUNC_INFO宏。
qDebug() << Q_FUNC_INFO << "debug stmt"; ==> Qt way
qDebug() << __PRETTY_FUNCTION__ << "debug stmt"; ==> c++ way
要着色,请使用此线程答案
看看https://doc.qt.io/qt-5/qtglobal.html#qSetMessagePattern
因此,您可以在main中使用例如.cpp:
int main(int argc, char *argv[])
{
qSetMessagePattern("%{function} %{message}");
...
}
Q_FUNC_INFO
是 std pretty 函数的 Qt 版本。
来自Qt Doc:
常量字符* Q_FUNC_INFO
展开为描述宏所在的函数的字符串。 此字符串更具体的外观取决于编译器。跟 GNU GCC 它通常是函数签名,而与其他 编译器 它可能是行号和列号。
如果要避免客户端代码中的冗长,可以使用Q_FUNC_INFO
定义自己的宏,例如:
#define qPrettyDebug() qDebug() << Q_FUNC_INFO
#define qPrettyWarning() qWarning() << Q_FUNC_INFO
void File::downloadingFinishd()
{
qPrettyWarning()<< "Download was succceed";
qDebug() << "here I don't want to print again the function context";
}