我正在QPlainTextEdit
用一种编程语言(Basic)以 , 显示文本,该语言在标识符的末尾可以有一个特定于类型的字符;例如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
不再导致选择包含额外的字符。有谁知道为什么这种行为发生了变化,我能做些什么?