有未经处理的异常: Microsoft C++ 异常: std::length_error,位于内存位置 0x000000C214FB98C0 处。


问题描述

在一个循环中,通过使用 Plain Text Edit 组件的库函数 appendPlainText() 向文本框中不断追加字符串,导致产生的错误。

for (int i = 1; i < NumbersOfPathPlan_Straight; i++) {
		ui.editControl->appendPlainText(QString("x : %1, y : %2, z : %3").arg(point.x).arg(point.y).arg(point.z));
}

原因分析:

std::length_error 异常表示长度错误,通常是由于尝试分配超过容器最大长度的内存或字符串长度超过最大限制等情况引起的。

当使用 QPlainTextEdit 的 appendPlainText() 函数追加大量文本时,可能会导致 std::length_error 错误,这是由于文本的长度超过了 QPlainTextEdit 的内部限制所引起的。


解决方案:

目前仍未找到合适的解决方案,暂时通过使用 QPlainTextEdit 的 setPlainText() 函数来设置整个文本内容,而不是每次追加文本。这样可以避免在每次追加文本时引发 std::length_error 错误。

你可能感兴趣的:(Qt,qt5,bug)