2014-02-07 60 views
6

讀取特定行我有此內容的QPlainTextEdit:如何從QPlainTextEdit

This 
is 
a 
QPlainTextEdit 

我Qt文檔中尋找一個COMAND閱讀,例如第四行(QPlainTextEdit):比如readLine(int line),但是我找不到任何東西。

回答

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;