c++ qt newline qdebug

c++ - Evitar nueva línea en qDebug()



qt newline (3)

Acabo de encontrar una solución que parece funcionar. La lectura de los documentos qDebug () devuelve un objeto QDebug temporal, que añade una nueva línea en la destrucción. Parece que este objeto temporal se puede almacenar en una variable temporal:

QDebug debug = qDebug(); if (fontMetricsLeading < 0) debug << "!!!"; debug << fontMetricsLeading;

A veces quiero mostrar una sola línea en qDebug() , pero con algún texto condicional, como

if (fontMetricsLeading < 0) qDebug() << "!!!"; qDebug() << fontMetricsLeading;

Sin embargo, eso les daría salida en 2 líneas separadas.

¿Hay alguna manera de evitar agregar una nueva línea después de cada qDebug() ?


Otra forma de lidiar con tu situación.

QString msg; if ( fontMetricsLeading < 0 ) { msg = "!!!"; } qDebug( "%s, %d", qPrintable( msg ), fontMetricsLeading );


Puede utilizar el operador ternario.

qDebug() << (fontMetricsLeading < 0 ? "!!!" : "") << fontMetricsLeading;

Una alternativa sería crear una cola en una QString como esta.

QString debugString; if(fontMetricsLeading < 0) debugString += "!!!"; debugString += QString::number(fontMetricsLeading); qDebug() << debugString;

Aunque no veo por qué tendría que ir a esta medida si es solo para fines de depuración.