从单词选择中排除字符的方法

时间:2010-03-30 13:47:32

标签: c++ qt qt4

我正在扩展QPlainTextEdit。

当我双击包含管道字符ex的单词时:{“foo”| upper | reverse} 全文都被包围了。

我想排除管道字符“|”从选择,不知道该怎么做 有没有办法改变QTextCursor :: WordUnderCursor的行为?

我希望这个字母与空格一样,或者更像是一个不可选择的字符。

正如QT文档中所述:

  

选择光标下的单词。如果   光标不在a内   可选字符串,没有   选择了文字。

1 个答案:

答案 0 :(得分:2)

目前,没有官方方法可以更改文本编辑查找单词边界的方式。请参阅http://bugreports.qt-project.org/browse/QTBUG-150

您可以使用其私有API来更改QTextEngine :: atWordSeparator的行为。 Qt不推荐这种方式。管道在4.6中被识别为字分隔符,但在4.5.1或更早版本中未被识别。我建议更新你的Qt版本,如果这是一个选项。否则,您可以为QTextEdit提供一个带有修改后的QTextEngine的新QTextLayout。