Insertar el contenido que un QTextBox en una cadena unicode
1. Convertir el QString a QByteArray:
2. Convertir el QByteArray a str
3. Inserción en la cadena unicode decodificando con utf-8
Nota: Combinar los pasos dos y tres en una sola línea produce error.
1. Convertir el QString a QByteArray:
metadata["title"] = f.ui.txtTitle.text().toLocal8Bit()
2. Convertir el QByteArray a str
bookTitle = str(self.metadata["title"])
3. Inserción en la cadena unicode decodificando con utf-8
description = DESCRIPTION_TEMPLATE % bookTitle.decode("utf-8")
Nota: Combinar los pasos dos y tres en una sola línea produce error.
Insertar en un QTextEdit la salida de un QProcess:
self.textEdit1.append ( QString ( self.proc.readLineStdout() ).ascii().decode("utf8") )
Lo que se ve bien en consola pero mal en el formulario se corrige con:
cadena.decode("utf8")
Lo que se bien en el formulario pero mal en consola:
unicode ( QString )
Para obtener el str de un QString:
Los métodos ascii() y toLocal8Bit() de QString retornan un QByteArray. Usar la función str de python sobre el QString directamente sólo funciona si no aparecen acentos.
Los métodos ascii() y toLocal8Bit() de QString retornan un QByteArray. Usar la función str de python sobre el QString directamente sólo funciona si no aparecen acentos.
str(QString.ascii())
2 comentarios:
Solución para lo que se ve bien en ventana pero no en consola:
str ( objQString.utf8() )
La solución del comentario uno también vale para redirigir la salida a un fichero
Publicar un comentario