• 3701阅读
  • 10回复

[讨论]QTextedit如何逐行读取? [复制链接]

上一主题 下一主题
离线mugua001
 

只看楼主 倒序阅读 楼主  发表于: 2020-06-22
目前用的方法是  QStringList txtList = ui->Qtxt->toPlainText().split("\n");
感觉多一道QStringList 工序,有没有 直接可以读的方法 ?
离线20091001753

只看该作者 1楼 发表于: 2020-06-22
  1. for(auto var:ui->plainTextEdit->toPlainText().split("\n")){
  2.     //
  3. }

(づ ̄ 3 ̄)づ
离线lemonzll

只看该作者 2楼 发表于: 2020-06-22
  1. auto block = edit->document()->firstBlock();
  2. while (block.isValid()) {
  3.          qDebug() << block.text();
  4.          block = block.next();
  5. }


3条评分好评度+1贡献值+1威望+1
liulin188 好评度 +1 - 2020-06-23
liulin188 贡献值 +1 - 2020-06-23
liulin188 威望 +1 - 2020-06-23
在线liulin188

只看该作者 3楼 发表于: 2020-06-23
    
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线mugua001

只看该作者 4楼 发表于: 2020-06-24
回 20091001753 的帖子
20091001753:for(auto var:ui->plainTextEdit->toPlainText().split("\n")){
    //
}
 (2020-06-22 19:47) 

我用的就是这方法,感觉多了一道工序
离线mugua001

只看该作者 5楼 发表于: 2020-06-24
回 lemonzll 的帖子
lemonzll:auto block = edit->document()->firstBlock();
while (block.isValid()) {
         qDebug() << block.text();
         block = block.next();
}
....... (2020-06-22 22:18) 

block.text()   是以  回车符为标记么?
离线lemonzll

只看该作者 6楼 发表于: 2020-06-24
回 mugua001 的帖子
mugua001:block.text()   是以  回车符为标记么? (2020-06-24 21:56) 

QTextEdit能显示普通文本,也能显示html。如果用来显示普通文本,block应该就是按行的,我测试过是这个逻辑。如果是html,就不一定了。
离线mugua001

只看该作者 7楼 发表于: 2020-06-25
回 lemonzll 的帖子
lemonzll:QTextEdit能显示普通文本,也能显示html。如果用来显示普通文本,block应该就是按行的,我测试过是这个逻辑。如果是html,就不一定了。 (2020-06-24 22:13) 

我晚上测试了一下。居然没有  text()方法 。我链接到QT官网帮助文档也说有...我这就是出不来...是人品么?

QTextBlock  qtTxtBlock01 = ui->text->document()->firstblock();
QString   str01 =  qtTxtBlock01.text();   //此处错误

最后还是用QStringList来完成;


离线levon

只看该作者 8楼 发表于: 2020-07-01
回 mugua001 的帖子
mugua001:我晚上测试了一下。居然没有  text()方法 。我链接到QT官网帮助文档也说有...我这就是出不来...是人品么?
QTextBlock  qtTxtBlock01 = ui->text->document()->firstblock();
QString   str01 =  qtTxtBlock01.text(); & .. (2020-06-25 00:37) 

#include <QTextBlock> 了?
离线levon

只看该作者 9楼 发表于: 2020-07-01
如果textedit 是设置为可折行的,如果行文本超长,这时候一个block 就包含多行;
离线mugua001

只看该作者 10楼 发表于: 2020-07-14
回 levon 的帖子
levon:如果textedit 是设置为可折行的,如果行文本超长,这时候一个block 就包含多行; (2020-07-01 11:14) 

这么说来,还是按‘\n'来计算,是比较保险的了。
谢谢
快速回复
限100 字节
 
上一个 下一个