LoginSignup
3
1

More than 1 year has passed since last update.

Qtでデバッグ出力をする

Last updated at Posted at 2022-04-24

Qtデバッグ出力

  • qDebug()
  • qInfo()
  • qWarning()
  • qCritical()

※ログの重要度 qDebug() < qInfo() < qWarning() < qCritical()

使用例

#include <QCoreApplication>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qDebug() << "Debug Message";
    qInfo() << "Info Massage";
    qWarning() << "qWarning Mwssage";
    qCritical() << "qCritical Message";

    return a.exec();
}

QString文字列の引用符を消す

QString str = "hoge";
qDebug() << str;           // 「"hoge"」引用符付きで表示される
qDebug().noquote() << str; // 「hoge」引用符無しで表示される
qDebug << "hoge";          // 「hoge」引用符無しで表示される

関数名を表示する

Q_FUNC_INFO // 関数名表示マクロ
__LINE__  // 行表示マクロ

クラス名を表示する

class MyLabel : public QLabel
~略~
qDebug() << MyLabel::staticMetaObject.className(); // 「MyLabel」と表示される
QLabel *label = new MyLabel;
qDebug() << label->metaObject()->className(); // 「MyLabel」と表示される

走り書きメモ

  • デバッグレベルの区別方法
    • qInstallMessageHandler関数
    • qSetMessagePattern関数
    • QLoggingCategoryクラス
  • リリースビルド時のログレベル設定(qmakeはあるっぽい、CMakeでもできる?)
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1