C++ 在QTextEdit中保留光标位置

C++ 在QTextEdit中保留光标位置,c++,qt,qlineedit,C++,Qt,Qlineedit,我有一个QTextEdit控件。它有一个最大限制(它可以容纳的最大字符数)。为了实现这一点,我将一个插槽连接到textChanged()信号,当字符总数超过允许的最大值时,该信号将删除额外的字符 在处理光标位置时,我遇到了一些问题。有人能告诉我如何在QTextEdit中保持光标位置吗?在您的插槽上: 如果字符数超过最大值: 向QTextEdit查询光标: 将返回值设置为textEdit光标(因为它返回一个副本)。从文件: 返回表示当前可见光标的QTextCursor的副本。请注意,返回的游标上

我有一个QTextEdit控件。它有一个最大限制(它可以容纳的最大字符数)。为了实现这一点,我将一个插槽连接到textChanged()信号,当字符总数超过允许的最大值时,该信号将删除额外的字符

在处理光标位置时,我遇到了一些问题。有人能告诉我如何在QTextEdit中保持光标位置吗?

在您的插槽上:

如果字符数超过最大值:

向QTextEdit查询光标:

将返回值设置为textEdit光标(因为它返回一个副本)。从文件:

返回表示当前可见光标的QTextCursor的副本。请注意,返回的游标上的>更改不会影响QTextEdit的游标;使用setTextCursor()来>更新可见光标

要求光标删除最后一个字符

(编辑)作为代码:

在您的插槽上:

如果字符数超过最大值:

向QTextEdit查询光标:

将返回值设置为textEdit光标(因为它返回一个副本)。从文件:

返回表示当前可见光标的QTextCursor的副本。请注意,返回的游标上的>更改不会影响QTextEdit的游标;使用setTextCursor()来>更新可见光标

要求光标删除最后一个字符

(编辑)作为代码:


如果数字超出限制或键入了错误字符,我将使用:

ui->textEdit->textCursor().deletePreviousChar();

如果数字超出限制或键入了错误字符,我将使用:

ui->textEdit->textCursor().deletePreviousChar();

写这两行有什么意义?它仅获取并设置光标位置。文档:
返回表示当前可见光标的QTextCursor的副本。请注意,对返回的游标所做的更改不会影响QTextEdit的游标;使用setTextCursor()更新可见光标。
写这两行有什么意义?它仅获取并设置光标位置。文档:
返回表示当前可见光标的QTextCursor的副本。请注意,对返回的游标所做的更改不会影响QTextEdit的游标;使用setTextCursor()更新可见光标。