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
- 然后,将
选项设置为(包装时的任意行长度,例如10)lineWrapColumnOrWidth
- 现在填充
,这样您就可以看到您期望的内容了李>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);