Qt moveCursor 不再改变选择边界

Qt moveCursor no longer changes selection boundary

我正在 QPlainTextEdit 中显示文本,使用的编程语言(基本)可以在标识符末尾包含特定于类型的字符;例如MyString$StartChar@。因此,如果用户通过双击选择这样的标识符,我希望特定类型的字符包含在选择中。这是我的代码:

QChar last = document() -> characterAt (end - 1) ;
QChar next = document() -> characterAt (end) ;
if (isalnum (last.unicode())) switch (next.unicode())
  {
  case '@': case '%': case '!': case '&': case '$': case '^': case '#':
    moveCursor (QTextCursor::Right, QTextCursor::KeepAnchor) ;
    break ;
  }

这曾经工作得很好。但是现在我已经升级到 Qt 5.12(我认为是从 Qt 5.4 升级),对 moveCursor 的调用不再导致选择包含额外的字符。有谁知道为什么这种行为发生了变化,我能做些什么吗?

发布的代码按预期工作。似乎发生了变化的是,双击后,QPlainTextEdit 触发了 mouseReleaseEvent;正是这个事件在我的代码中没有得到正确处理。

我已修复此问题,现在一切正常。