gpt4 book ai didi

c++ - 为 console.log 设置一个 QML 类别

转载 作者:可可西里 更新时间:2023-11-01 18:26:18 36 4
gpt4 key购买 nike

我是 Qt/QML 主题的新手,我正在尝试在我的 C++ 业务逻辑中安装一个日志记录处理程序。以下代码片段安装一个处理程序并设置一个特殊类别:

    int main(int argc, char *argv[])
{
qInstallMessageHandler(myMessageOutput);
QLoggingCategory mainEx("main.ex");

qCDebug(mainEx) << "debug message";
...
}

结果是从 Qt 后端调用以下已安装的消息处理程序:

void myMessageOutput(QtMsgType type, const QMessageLogContext &context,
const QString &msg)
{
...
}

在 Qt 5 中,也可以直接在 QML 中编写调试消息:

console.debug("debug message")

但是 QMessageLogConext 中的“类别”始终是“qml”。是否可以直接在 QML 中设置另一个类别?

最佳答案

从 Qt 5.8 开始,分类日志记录 available在 QML 中开箱即用。

A logging category can be passed to console.log() and friends as the first argument. If supplied to to the logger the LoggingCategory's name will be used as Logging Category otherwise the default logging category will be used.

import QtQuick 2.8

Item {
LoggingCategory {
id: category
name: "com.qt.category"
}

Component.onCompleted: {
console.log(category, "message");
}
}

关于c++ - 为 console.log 设置一个 QML 类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347963/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com