QDebugStateSaver 类

用于自定义 QDebug 运算符的便利类。 更多信息...

头文件 #include <QDebugStateSaver>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

公有函数

详细说明

保存 QDebug 使用的设置,并在销毁时恢复,然后调用 maybeSpace(),以分隔参数,如果当时在构建 QDebugStateSaverautoInsertSpaces() 为真。

写入之间自动插入空格是 QDebugStateSaver 在当前块期间存储的设置之一。

也会保存和恢复内部 QTextStream 的设置,这样在使用 Qt::hexQDebug 运算符时不影响其他 QDebug 运算符。

QDebugStateSaver 通常用于实现运算符 <<() 用于调试。

QDebug operator<<(QDebug dbg, const Message &message)
{
    const QList<QStringView> pieces = message.body().split(u"\r\n", Qt::SkipEmptyParts);
    if (pieces.isEmpty())
        dbg.nospace() << "Message()";
    else if (pieces.size() == 1)
        dbg.nospace() << "Message(" << pieces.first() << ")";
    else
        dbg.nospace() << "Message(" << pieces.first() << " ...)";
    return dbg;
}

成员函数文档

QDebugStateSaver::QDebugStateSaver(QDebug &dbg)

创建一个 QDebugStateSaver 实例,该实例保存了 dbg 当前使用的设置。

另请参阅QDebug::setAutoInsertSpaces() 和 QDebug::autoInsertSpaces

[noexcept] QDebugStateSaver::~QDebugStateSaver()

销毁一个 QDebugStateSaver 实例,在创建 QDebugStateSaver 实例时恢复设置。

另请参阅QDebug::setAutoInsertSpaces() 和 QDebug::autoInsertSpaces

© 2024 Qt 公司有限公司。此处包含的文档贡献者的版权归其所有者所有。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 许可的。Qt 及其标志是芬兰及/或全球其他地区的 The Qt 公司的商标。所有其他商标均归其所有者所有。