我有一个QPlainTextEdit
,其中包含一些文本。启用自动换行。
当我使用toPlainText()
检索文本时,结果字符串不包含从自动换行创建的换行符。这是因为这些换行符不是由用户直接输入的。
我想保留自动换行创建的那些换行符。如何做到这一点?
例如:
将QPlainTextEdit
小部件添加到窗口中,并在其中填充足够的文字以进行自动换行以创建新行。
将该文本输出到文件:
QString myText = ui->plainTextEdit->toPlainText();
QFile outputFile("test.txt");
outputFile.open(QIODevice::WriteOnly);
outputFile.write(myText.toUtf8());
outputFile.close();
如何保留自动换行模拟的换行符?
答案 0 :(得分:0)
我使用QTextEdit
而不是QPlainTextEdit
来报价,因为它很容易访问您想要的内容(它确实可以工作):
QTextEdit
控件lineWrapMode
选项更改为FixedColumnWidth
(在属性部分)lineWrapColumnOrWidth
选项设置为(包裹时,您的任意行长,例如10)QTextEdit
,这样您就可以看到期望的结果!现在尝试逐行获取QTextEdit
数据("textEdit"
为QTextEdit
):
// 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));
}
对于拆分实数\n
,您可以尝试:
QString.split(QRegExp("[\r\n]"),QString::SkipEmptyParts);
只要任何 newline 字符,此语句就会拆分字符串。