- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在为我的大学类(class)开发一个简单的在线纯文本编辑器。我用 QTextDocument::contentsChange(index, charsRemoved, charsAdded)
确定 QPlainTextEdit
对文档所做更改的信号并将它们发送到服务器。但有时会争论,charsRemoved
和 charsAdded
给出无效值。
例如当我在编辑器文本中间使用 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/
我目前正在为我的大学类(class)开发一个简单的在线纯文本编辑器。我用 QTextDocument::contentsChange(index, charsRemoved, charsAdded)确
我是一名优秀的程序员,十分优秀!