C++ QPlainTextEdit::toPlainText()但包含换行符

C++ QPlainTextEdit::toPlainText()但包含换行符,c++,qt,qplaintextedit,C++,Qt,Qplaintextedit,我有一个包含一些文本的QPlainTextEdit。已启用自动换行 当我使用toPlainText()检索文本时,生成的字符串不包含从word wrap创建的换行符。这是因为这些换行符不是用户直接输入的 我想保留word wrap创建的换行符。如何做到这一点 例如: 将QPlainTextEdit小部件添加到窗口,并用足够的文本填充它,以便word wrap创建新行 将该文本输出到文件: QString myText = ui->plainTextEdit->toPlainText

我有一个包含一些文本的
QPlainTextEdit
。已启用自动换行

当我使用
toPlainText()
检索文本时,生成的字符串不包含从word wrap创建的换行符。这是因为这些换行符不是用户直接输入的

我想保留word wrap创建的换行符。如何做到这一点

例如:

QPlainTextEdit
小部件添加到窗口,并用足够的文本填充它,以便word wrap创建新行

将该文本输出到文件:

QString myText = ui->plainTextEdit->toPlainText();

QFile outputFile("test.txt");
outputFile.open(QIODevice::WriteOnly);
outputFile.write(myText.toUtf8());
outputFile.close();
结果输出仅为1行。


如何保留换行符?

我建议使用
QTextEdit
而不是
QPlainTextEdit
,因为它很容易访问您想要的内容(确实有效):

  • 在小部件上拖动
    QTextEdit
    控件
  • 选择它,并将
    lineWrapMode
    选项更改为
    FixedColumnWidth
    (在属性部分)
  • 然后,将
    lineWrapColumnOrWidth
    选项设置为(包装时的任意行长度,例如10)
  • 现在填充
    QTextEdit
    ,这样您就可以看到您期望的内容了
现在,请逐行尝试获取
QTextEdit
数据(
“textEdit”
QTextEdit
):


每当出现任何换行符时,此语句都会拆分字符串。

请提供@eyllanesc我已编辑了我的帖子您需要换行符做什么?很复杂。。。但我确实需要它们,你可能需要自己来做。你需要QfutMeMeX,字体和线宽度从你的QualthTeTeDIT像素。这不是切断中间的话呢?换行符在移动到新行时使整个单词保持在一起。我需要单词之间的换行符,而不仅仅是字符数。@mrg95我编辑了我的答案,请注意我在答案中添加的最后几句话
// QTextEdit content
QString strLines = ui->textEdit->toPlainText();

// line count of QTextEdit
int lineCount = strLines.length() / ui->textEdit->lineWrapColumnOrWidth();
int lineLength = ui->textEdit->lineWrapColumnOrWidth();

for(int i = 0; i < lineCount; i++) {

    QMessageBox::information(this, "", strLines.mid(i * lineLength, lineLength));
}
QString.split(QRegExp("[\r\n]"),QString::SkipEmptyParts);