2014-02-07 10 views

Antwort

6

Ich würde folgendes tun:

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

Ok, es funktioniert! Und wenn ich die Gesamtanzahl der Zeilen im Text erhalten möchte? – user3204810

+0

Wird QTextDocument :: lineCount() das zurückgeben? Ich denke schon. – vahancho

1

Sie müssen den Klartext abrufen und ihn nach Zeilen aufteilen. Zum Beispiel:

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

Wenn Sie leere Zeilen schließen, entfernen Sie das SkipEmptyParts Argument - es KeepEmptyParts nicht erfüllt.

Sie können auch den Text-Stream verwenden:

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; 
Verwandte Themen