7
votes

QT - Obtenir "AVERTISSEMENT: Format Pas d'arguments littéraux littéraux stricts"

Continuez à gagner des avertissements sur des lignes comme celles-ci xxx

workdir étant qstring () xxx


1 commentaires

+1 pour permettre les avertissements du compilateur


3 Réponses :


5
votes

qui devrait probablement être: xxx

depuis qdebug prend const char * comme premier argument.


4 commentaires

Maintenant, il gagne AVERTISSEMENT: impossible de transmettre des objets de type «Classe QbyTarray» de type POD 'à travers' ... '; L'appel va avorter à l'exécution et avertissement: le format '% s' s'attend à ce que le type 'Char *', mais l'argument 2 a le type 'int'


tocasii () renvoie un QbyTeArray, essayez workdir.toascii (). Constdata ()


On peut également utiliser qprinttable (WorkDir), qui est un peu plus court.


Ou utilisez la syntaxe plus amicale: qdebug () << "une erreur s'est produite" << WorkDir; Cela nécessite, y compris , mais de nombreux types QT ont des surcharges utiles pour l'opérateur << et Qdebugstream, tout comme QObject *



2
votes

Lors du débutant avec qdebug , je trouve la syntaxe suivante beaucoup plus facile: xxx

Pour ce faire, vous devez inclure le en-tête.

Plus d'infos: Documents QT Concernant Qdebug () .


0 commentaires

2
votes

J'ai réussi à le faire fonctionner correctement sans avertissement comme celui-ci:

qDebug("An error occurred while trying to create folder %s", qUtf8Printable(workdir));


0 commentaires