我们正在构建一个使用qDebug
其变体(qWarning、QCritical 等)和自定义qDebug
消息处理程序的静态库。因此,每个qDebug
及其变体及其变体都被重定向到我们的消息处理程序。但是我们不想qDebug
在消息处理程序中处理应用程序及其变体。我们可以做的一种解决方法是在静态库中传递自定义调试消息类型并在回调QDebug
中检查它。qMessageHandler
但这安全吗?我们想到的另一种方法是创建一个类似于的类,并为每个相同的数据类型QDebug
重载流插入运算符<<
QDebug
做。在 Qt 5.2+ 中,我们有日志类别,可以轻松实现这一点。但不幸的是,我们必须在项目中使用 qt 4.7。任何人都可以告诉是否有更简单的方法来实现这一目标?提前致谢。
问问题
108 次
1 回答
0
由于调用qInstallMessageHandler返回对原始消息处理程序的引用,假设您使用 Qt5,您可以自己处理所有消息类型,除了QtDebugMsg
您将调用前一个处理程序的类型。
于 2018-08-08T06:30:56.360 回答