Comment imprimer un littéral de chaîne et QString avec qDebug?
Est-il un moyen facile pour obtenir la suite des travaux? Je veux dire est-il de la classe helper dans Qt
qui prépare la chaîne pour qDebug
?
QString s = "value";
qDebug("abc" + s + "def");
Vous devez vous connecter pour publier un commentaire.
Pas de manière très facile, j'en suis conscient. Vous pouvez le faire:
ou
Vous pouvez utiliser les éléments suivants:
La
nospace()
est d'éviter l'impression d'espace après chaque argument (qui est par défaut pourqDebug()
).Selon Qt Core 5.6 documentation vous devez utiliser
qUtf8Printable()
de<QtGlobal>
- tête d'impressionQString
avecqDebug
.Vous devez faire comme suit:
ou moins:
Voir:
http://doc.qt.io/qt-5/qtglobal.html#qPrintable
http://doc.qt.io/qt-5/qtglobal.html#qUtf8Printable
Option 1: Utiliser le qDebug par défaut du mode de C-format de chaîne de caractères et de la liste d'arguments variable (comme printf):
Option 2: Utilisation de la version C++ avec surchargé << opérateur:
Référence: https://qt-project.org/doc/qt-5-snapshot/qtglobal.html#qDebug
Viens de reprendre ton code comme ceci:
Je sais que cette question est un peu vieux, mais il semble à peu près sur lors de la recherche dans le web. On peut surcharger l'opérateur pour qDebug (plus spécifique pour QDebug) pour lui faire accepter des std::les chaînes de caractères comme ceci:
Cette chose est depuis des années dans tous mes projets, j'ai failli oublier, il est toujours pas là par défaut.
Après cela, l'utilisation de << pour qDebug() est beaucoup plus utilisable à mon humble avis. Vous pouvez même mélanger QString et std::string. Quelques autres(mais pas vraiment prévu) caractéristique est, que vous pourrez parfois jeter des nombres entiers ou d'autres types qui permettent la conversion implicite à std::string .