1行を出力したい場合qDebug()
がありますが、次のような条件付きテキストを使用します
if (fontMetricsLeading < 0)
qDebug() << "!!!";
qDebug() << fontMetricsLeading;
ただし、それはそれらを2つの別々の行に出力します。
それぞれの後に新しい行を追加しないようにする方法はありqDebug()
ますか?
うまくいくと思われる解決策を見つけました。ドキュメント qDebug() を読むと、破棄時に改行を追加する一時的な QDebug オブジェクトが返されます。この一時オブジェクトは一時変数に格納できるようです:
QDebug debug = qDebug();
if (fontMetricsLeading < 0)
debug << "!!!";
debug << fontMetricsLeading;
三項演算子を使用できます。
qDebug() << (fontMetricsLeading < 0 ? "!!!" : "") << fontMetricsLeading;
別の方法は、このような形でキューを構築することQString
です。
QString debugString;
if(fontMetricsLeading < 0)
debugString += "!!!";
debugString += QString::number(fontMetricsLeading);
qDebug() << debugString;
デバッグ目的のためだけに、なぜこの程度まで行く必要があるのか わかりませんが。
あなたの状況に対処する別の方法。
QString msg;
if ( fontMetricsLeading < 0 )
{
msg = "!!!";
}
qDebug( "%s, %d", qPrintable( msg ), fontMetricsLeading );