Je veux "stringifier" un nombre et ajouter un remplissage à zéro, comme comment printf("%05d")
ajouterait des zéros non significatifs si le nombre est inférieur à 5 chiffres.
91
Utilisez ceci:
QString number = QStringLiteral("%1").arg(yourNumber, 5, 10, QLatin1Char('0'));
5 correspond ici à 5 pouces printf("%05d")
. 10 est la base, vous pouvez mettre 16 pour imprimer le nombre en hexadécimal.
"%1"
?%2
etc. Voir doc.qt.io/qt-5/qstring.html#argQString QString :: rightJustified (int width, QChar fill = QLatin1Char (''), bool truncate = false) const
le résultat est maintenant 00099
la source
L'exemple court:
la source
Essayer:
EDIT: Selon la documentation sur http://qt-project.org/doc/qt-4.8/qstring.html#sprintf :
Attention : nous ne recommandons pas d'utiliser QString :: sprintf () dans le nouveau code Qt. Au lieu de cela, envisagez d'utiliser QTextStream ou arg (), qui prennent tous deux en charge les chaînes Unicode de manière transparente et sont de type sécurisé. Voici un exemple qui utilise QTextStream:
Lisez les autres documents pour les fonctionnalités absentes de cette méthode.
la source
J'utilise une technique depuis VB 5
la source
J'essayais cela (qui fonctionne, mais encombrant).
la source