2014-02-07 2 views

ответ

6

Я хотел бы сделать следующее:

QPlainTextEdit edit; 
edit.setPlainText("This\nis\na\nQPlainTextEdit"); 

QTextDocument *doc = edit.document(); 
QTextBlock tb = doc->findBlockByLineNumber(1); // The second line. 
QString s = tb.text(); // returns 'is' 
+0

Хорошо, это работает! И если я хочу получить общее количество строк в тексте? – user3204810

+0

Будет ли QTextDocument :: lineCount() возвращать это? Полагаю, что так. – vahancho

1

Вам нужно получить простой текст и разбить его по строкам. Например:

QStringList lines = plainTextEdit->plainText() 
         .split('\n', QString::SkipEmptyParts); 
if (lines.count() > 3) 
    qDebug() << "fourth line:" << lines.at(3); 

Если вы хотите включить пустые строки, а затем удалить SkipEmptyParts аргумент - это будет по умолчанию KeepEmptyParts.

Вы также можете использовать текстовый поток:

QString text = plainTextEdit->plainText(); 
QTextStream str(&text, QIODevice::ReadOnly); 
QString line; 
for (int n = 0; !str.atEnd() && n < 3; ++n) 
    line = str.readLine(); 
qDebug() << "fourth or last line:" << line; 
Смежные вопросы