gpt4 book ai didi

C++ QTextDocument::contentsChange() 信号提供了无效的输入数据

转载 作者:行者123 更新时间:2023-11-30 03:23:05 29 4
gpt4 key购买 nike

我目前正在为我的大学类(class)开发一个简单的在线纯文本编辑器。我用 QTextDocument::contentsChange(index, charsRemoved, charsAdded)确定 QPlainTextEdit 对文档所做更改的信号并将它们发送到服务器。但有时会争论,charsRemovedcharsAdded给出无效值。

例如当我在编辑器文本中间使用 Ctrl+V 插入文本时,会报告正确的 charsAdded 信息 ( charsRemoved == 0 && charsAdded == <inserted_text_length> )。但是,如果我将文本插入第零个索引,就在第一个字符之前,则会给出无效数据 ( charsRemoved == <previous_editors_text_size> + 1 && charsAdded == <new_editors_text_size> + 1 )。但是,如果我通过键盘输入单个字符并且我的光标位于编辑器的开头,信号会正确报告报告 charsRemoved == 0 && charsAdded == 1

此外,当我通过按 Ctrl+Shift 或当我使用 Alt+Tab 而光标位于 QPlainTextEdit 中的任何位置时更改我的文本输入语言时 window ,然后发出信号 QTextDocument::contentsChange()发出两次并报告 charsRemoved == <current_editors_text_size> + 1 &&
charsAdded == <previous_editors_text_size>

这是一个错误还是我该如何处理这个问题?

最佳答案

看起来这个错误自 qt 4 以来就已被报告,但从未被修复。我能找到的最新错误报告是 this one .

对于双信号发射,考虑这个信号应该用于报告文本内容和格式的变化。因此,这些键组合可能会触发两个信号,一次用于文本,一次用于输入模式的更改。但这只是我的假设。

关于C++ QTextDocument::contentsChange() 信号提供了无效的输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651024/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com