当我尝试在 qTextEdit 中设置文本时出错
error when i'm trying to set text in qTextEdit
我将Qt 5.3与MSVC2013一起使用。这是我代码的一部分:
mainwindow.cpp
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
setupUi(this);
connect(okButton,SIGNAL(clicked()),SLOT(onOKClicked()));
}
void MainWindow::onOKClicked(){
arr0.Put(addBox->value(),posBox->value());
QString str = arr0.GetArrText();
arrayContent->setText(str);
}
变量"str"的内容是好的,因为它正在使用qDebug。
arrayContext变量是一个QTextEdit。当我尝试使用setText()时,我会得到以下错误:
QTextCursor::setPosition: Position '7' out of range
你知道为什么会发生在我身上吗?
由于某种神秘的原因,当您将新内容和旧光标指向新内容之外时,光标位置没有正确更新。这是Qt中的一个错误。
作为一种变通方法,你可以尝试一下:
void MainWindow::onOKClicked(){
arr0.Put(addBox->value(),posBox->value());
QString str = arr0.GetArrText();
arrayContent->moveCursor(QTextCursor::Start);
arrayContent->setText(str);
arrayContent->selectAll(); // or arrayContent->moveCursor(QTextCursor::End);
}
或者您可以尝试直接对文档进行操作:
void MainWindow::onOKClicked(){
arr0.Put(addBox->value(),posBox->value());
QString str = arr0.GetArrText();
arrayContent->moveCursor(QTextCursor::Start);
arrayContent->document()->setPlainText(str);
arrayContent->selectAll(); // or arrayContent->moveCursor(QTextCursor::End);
}
相关文章:
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 内置函数可查看CPP中的成员变量
- GLUT 问题:重新声明 c++ 内置类型'wchar_t'时出错
- 将文本从一个文件复制到另一个c++流时出错
- 如何在EDSDK中出错后重置相机
- OpenGL 将来自 ttf 的渲染器文本与背景纹理组合在一起时出错
- 使用 conio.h 更改文本颜色时出错
- 即使不满足条件,也会重置文本文件.(C++)
- 将字符串从文本文件读取到矢量数组C++时出错
- 视觉对象C++窗体、简单消息框和将文本从文本字段分配给字符串时出错
- 当我尝试在 qTextEdit 中设置文本时出错
- 用c++读取和打印文本文件时出错
- PInvoke:从c++返回文本到c#时出错
- 读取文本文件片段并写入boost时出错.asio插座
- 从文件读取文本到无符号字符数组,在尝试使用示例时出错
- 将数字转换为文本时出错
- 如何按Escape键重置QLineEdit文本