Используйте QTextStream для чтения первой строки в строке

Как я могу использовать QTextStream прочитать первую строку в строке (читать из файла раньше)?

streamin = QTextStream(str)
line = streamin.readLine()

Кажется, этот код не работает.

2 ответа

Решение

Класс QTextStream не принимает строки Python напрямую. Для PyQt5 вы должны сначала преобразовать строку в QByteArray:

>>> s = """\
... First Line
... Second Line
... Third Line
... """
>>> ba = QtCore.QByteArray(s.encode('utf-8'))
>>> ts = QtCore.QTextStream(ba)
>>> ts.setCodec('utf-8')
>>> ts.readLine()
'First Line'

Я собираюсь опубликовать фрагмент кода с сайта документации Qt.

А еще лучше... вот что-то из stackru.

// Instead of feeding in stdin, you can feed in QFile - i.e. QIODevice
QFile file("myfile");
// ... open file etc etc
QTextStream stream(&file);
QString line;
line = stream.readLine();
Другие вопросы по тегам