我正在扩展 QPlainTextEdit。
当我双击包含管道字符 ex 的单词时:{"foo"|upper|reverse} 整个文本被包围。
我想排除管道字符“|”从选择中不知道该怎么做 有没有办法改变 QTextCursor::WordUnderCursor 的行为?
我希望该字符的行为与空格相同,或者更一般地作为不可选择的字符。
如 QT 文档中所述:
Selects the word under the cursor. If the cursor is not positioned within a string of selectable characters, no text is selected.
最佳答案
目前没有官方方法可以更改文本编辑查找单词边界的方式。参见 http://bugreports.qt-project.org/browse/QTBUG-150 .
您可以使用他们的私有(private) API 来改变 QTextEngine::atWordSeparator 的行为。 Qt 不推荐这种方式。管道在 4.6 中被识别为单词分隔符,但在 4.5.1 或更早版本中不被识别。如果可以的话,我建议更新您的 Qt 版本。否则,您可以为您的 QTextEdit 提供一个带有修改后的 QTextEngine 的新 QTextLayout。
关于c++ - 从单词选择中排除字符的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2545681/