Способ исключения символа из выбора слова - PullRequest
1 голос
/ 30 марта 2010

Я расширяю QPlainTextEdit.

Когда я дважды щелкаю слово, содержащее символ трубы, например: {"foo" | upper | reverse} весь текст окружен.

Я бы хотел исключить символ трубы "|" из выбора и не знаю что делать Есть ли способ изменить поведение QTextCursor :: WordUnderCursor?

Я бы хотел, чтобы этот символ действовал так же, как пробел, или, в более общем смысле, как не выбираемый символ.

Как указано в документации QT:

Выбирает слово под курсором. Если курсор не расположен внутри строка выбираемых символов, нет текст выделен.

1 Ответ

2 голосов
/ 30 марта 2010

В настоящее время нет официального способа изменить способ, которым текстовый редактор находит границы слова. См. http://bugreports.qt -project.org / browse / QTBUG-150 .

Вы можете использовать их закрытый API для изменения поведения QTextEngine :: atWordSeparator. Этот способ не рекомендуется Qt. Канал распознается как разделитель слов в 4.6, но не в 4.5.1 или более ранней. Я бы предложил обновить вашу версию Qt, если это вариант. В противном случае вы можете дать вашему QTextEdit новый QTextLayout с измененным QTextEngine.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...