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
;正是这个事件在我的代码中没有得到正确处理。
我已修复此问题,现在一切正常。
我正在 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
;正是这个事件在我的代码中没有得到正确处理。
我已修复此问题,现在一切正常。