Para crear un nulo QString
simplemente por defecto inicializa:
QString phoneNumber;
// or if you already have a QString variable and want to 'clear' it:
phoneNumber = QString();
Tenga en cuenta que es decididamente QString::number(0)
no nula - se crea un QString con el valor "0"
.
También puede inicializar el QString
con un puntero NULL
, pero yo no lo recomendaría a menos que estés pasando un puntero independientemente de si se trata de NULL
o no (es decir, que a veces podía apuntar a una cadena C), ya que es innecesario.
También debe comprender el following Qt docs:
Distinción entre nulo y cadenas vacías
Por razones históricas, QString
distingue entre una cadena nula y una cadena vacía. Una cadena nula es una cadena que se inicializa usando el constructor predeterminado de QString
o pasando (const char *)0
al constructor. Una cadena vacía es cualquier cadena con tamaño 0. Un cadena nula siempre está vacío, pero una cadena vacía no es necesariamente nulo:
QString().isNull(); // returns true
QString().isEmpty(); // returns true
QString("").isNull(); // returns false
QString("").isEmpty(); // returns true
QString("abc").isNull(); // returns false
QString("abc").isEmpty(); // returns false
todas las funciones excepto isNull()
tratar las series nulos los mismos que vacías cuerdas. Por ejemplo, toAscii().constData()
devuelve un puntero a un '\0'
carácter para una cadena nula (no un puntero nulo), y QString()
compara igual a QString("")
. Recomendamos que utilice siempre la función isEmpty()
y evite isNull()
.
Michael gracias por su respuesta, pero una cosa no me queda clara: ¿str.clear() deja una cadena vacía o anula una. Si está vacío, ¿hay alguna forma de anularlo? – yatsa
'QString :: clear()' establece la cadena en nulo (es decir, después de 'str.clear()', str.isNull() devolverá 'true'). –