提问人:user3204810 提问时间:2/8/2014 最后编辑:Kuba hasn't forgotten Monicauser3204810 更新时间:2/8/2014 访问量:7606
如何从 QPlainTextEdit 中读取特定行
How to read a specific line from QPlainTextEdit
问:
我有一个QPlainTextEdit,内容如下:
This
is
a
QPlainTextEdit
我正在 Qt 文档中搜索要读取的 comand,例如第四行 (QPlainTextEdit):例如 readLine(int line),但我找不到任何东西。
答:
1赞
Kuba hasn't forgotten Monica
2/8/2014
#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;
11赞
vahancho
2/8/2014
#2
我会做以下事情:
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
2/8/2014
好的,它有效!如果我想获取文本中的总行数?
1赞
vahancho
2/8/2014
QTextDocument::lineCount() 会返回吗?我想是的。
评论