2016-01-25 1 views
0

Je travaille sur un pilote d'imprimante et j'importe les commandes d'imprimante de manuel de spécification de commande et par exemple, commande imprimante impression et d'alimentation du papier a une valeur hexadécimale de 0x0a:QString contenant commande de l'imprimante en hexadécimal

#ifndef UECOMMANDSET_H 
#define UECOMMANDSET_H 

#include <QString> 

namespace UeCommandSet 
{ 
    namespace TSM210 
    { 
     static const QString CMD_LF="\x0A"; 
    } // namespace 
} // namespace 

#endif // UECOMMANDSET_H 

Cette représentation de commande est-elle correcte, c.-à-d. QString va-t-elle contenir 0x0a valeur?

Répondre

1

Oui, je l'ai testé comme suit:

static const QString CMD_LF= "\x0A"; 

qDebug() << CMD_LF.size(); 
qDebug() << (int)CMD_LF.at(0).toLatin1(); 

Ainsi, la première ligne donne 1 et deuxième donne 10 ce qui est correct. Aussi, vous pouvez utiliser le code suivant pour définir CMD_LF à 0x0A

static const QString CMD_LF= "\n"; 
+1

Si vous avez besoin de symboles plus complexes à plusieurs commandes ont un oeil à QByteArray :: méthode fromHex – Jeka

+0

@mehmetta mais comment puis-je append ** nombre décimal ** à la fin de, par exemple, 'CMD_LF' chaîne - quelques commandes d'imprimante paramètres de demande? – KernelPanic

+1

Vous pouvez utiliser la méthode QString :: append(). Par exemple ' QString str; unsigned char c = 'c'; str.append (65); str.append (c); qDebug() << str; ' Cela donne" Ac " – mehmetfa