Qt moveCursor больше не меняет границу выделения - PullRequest
0 голосов
/ 30 марта 2019

Я отображаю текст на 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 больше не заставляет выбор включать дополнительный символ.У кого-нибудь есть идея, почему это поведение изменилось, и что я могу с этим поделать?

1 Ответ

0 голосов
/ 03 апреля 2019

Размещенный код работает как положено.Кажется, изменилось то, что после двойного щелчка QPlainTextEdit вызывает mouseReleaseEvent;это было событие, которое обрабатывалось неправильно в моем коде.

Я исправил это, и теперь все работает, как раньше.

...