<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 概述 qInstallMessageHandler 用于注冊 QtMessageHandler 的handle ``` QtMessageHandler qInstallMessageHandler(QtMessageHandler handler) ``` QtMessageHandler 格式為 ``` typedef void (*QtMessageHandler)(QtMsgType, const QMessageLogContext &, const QString &); ``` ## 示例 ### 輸出詳細信息 ``` // 自定義消息處理程序 void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) { QByteArray localMsg = msg.toLocal8Bit(); switch (type) { case QtDebugMsg: fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function); break; case QtInfoMsg: fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function); break; case QtWarningMsg: fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function); break; case QtCriticalMsg: fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function); break; case QtFatalMsg: fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function); abort(); } } ``` 使用 ``` int main(int argc, char *argv[]) { qInstallMessageHandler(myMessageOutput); QApplication a(argc, argv); qDebug()<<"測試"; // Debug: 測試 (../hello3/main.cpp:38, int main(int, char **)) MainWindow w; w.show(); return a.exec(); } ``` ### 詳細信息輸出到文件 注意 release 版本 沒有 上下文消息,需要設置 ``` DEFINES += QT_MESSAGELOGCONTEXT ``` ``` // 自定義消息處理程序 void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) { // 加鎖 static QMutex mutex; mutex.lock(); QByteArray localMsg = msg.toLocal8Bit(); QString strMsg(""); switch(type) { case QtDebugMsg: strMsg = QString("Debug"); break; case QtWarningMsg: strMsg = QString("Warning"); break; case QtCriticalMsg: strMsg = QString("Critical"); break; case QtFatalMsg: strMsg = QString("Fatal"); break; } // 設置輸出信息格式 QString strDateTime = QDateTime::currentDateTime().toString("yy-MM-dd hh:mm:ss"); QString strMessage = QString("%1 [%2] %3 [%5:%6]") .arg(strDateTime) .arg(strMsg) .arg(localMsg.constData()). arg(context.file).arg(context.line); // 輸出信息至文件中(讀寫、追加形式) // 使用 static 只需要 static QFile file("log123123.txt"); if(!file.isOpen()){ file.open(QIODevice::ReadWrite | QIODevice::Append); } QTextStream stream(&file); stream << strMessage << "\r\n"; file.flush(); // 取消 close // file.close(); // 解鎖 mutex.unlock(); } ``` 使用 ``` int main(int argc, char *argv[]) { qInstallMessageHandler(myMessageOutput); QApplication a(argc, argv); qDebug()<<"測試"; // Debug: 測試 (../hello3/main.cpp:38, int main(int, char **)) MainWindow w; w.show(); return a.exec(); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看