如何从qplaintextedit读取特定行

How to read a specific line from QPlainTextEdit

本文关键字:读取 qplaintextedit      更新时间:2023-10-16

我有一个带有此内容的qplaintextedit:

This
is
a
QPlainTextEdit

我正在QT文档中搜索以阅读的comand,例如第四行(qplaintextedit):这样的读取线(int行),但我找不到任何东西。

我会做以下内容:

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

您需要获取纯文本,然后按行分开。例如:

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;