Russian Qt Forum
Ноябрь 25, 2024, 12:00
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt Quick
(Модератор:
navrocky
) >
Найти и выделить слово в TextArea
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Найти и выделить слово в TextArea (Прочитано 28627 раз)
SektorCT
Частый гость
Offline
Сообщений: 229
Найти и выделить слово в TextArea
«
:
Март 26, 2024, 14:23 »
Всем привет.
Пытаюсь найти способ как слово которое надо найти в тексте расположенным в TextArea, найти и выделить.
Спасибо.
Записан
SektorCT
Частый гость
Offline
Сообщений: 229
Re: Найти и выделить слово в TextArea
«
Ответ #1 :
Март 28, 2024, 11:48 »
Может кто подкинет идею как можно выделать в нем(TextArea) нужные слова?
Записан
ssoft
Программист
Offline
Сообщений: 584
Re: Найти и выделить слово в TextArea
«
Ответ #2 :
Март 28, 2024, 14:39 »
TextArea отображает разметку html, выделяемые слова можно поместить в теги, определяющие формат выделения.
Записан
Apktyc
Самовар
Offline
Сообщений: 133
Re: Найти и выделить слово в TextArea
«
Ответ #3 :
Март 28, 2024, 16:29 »
TextArea наследник TextEdit, а для него есть
QSyntaxHighlighter
Записан
SektorCT
Частый гость
Offline
Сообщений: 229
Re: Найти и выделить слово в TextArea
«
Ответ #4 :
Апрель 05, 2024, 16:21 »
Нашел вариант, пробижаться по тексту и найти индекс начала и конца слова, и через метод select() с 2 аргументами выделить слово.
Но вот есдинственное что не могу найти, так это как отобразить ту область в тексте где найдено слово.
Как понимаю надо наверное перейти к курсору.
Может кто подсказать, вдруг имели опыт.
Записан
SektorCT
Частый гость
Offline
Сообщений: 229
Re: Найти и выделить слово в TextArea
«
Ответ #5 :
Апрель 09, 2024, 17:34 »
Цитата: Apktyc от Март 28, 2024, 16:29
TextArea наследник TextEdit, а для него есть
QSyntaxHighlighter
А вы случайно не пробовали такой метод для выделения?
Получается выделить слово но вот как скрол заставить на позицию того слова перейти. это не срабатывает
Записан
Apktyc
Самовар
Offline
Сообщений: 133
Re: Найти и выделить слово в TextArea
«
Ответ #6 :
Апрель 09, 2024, 17:55 »
Так QSyntaxHighlighter именно для подсветки, дабы сразу подсветить во всем тексте искомую фразу (при этом не искажая формат текста).
С QML не работаю, но:
У QTextEdit есть document().
У QTextDocument есть find() возвращающий QTextCursor (с выделением искомого).
Дальше QTextEdit::setTextCursor, и на всякий случай есть QTextEdit::ensureCursorVisible(), который «scrolling the text edit if necessary».
Вижу так.
Записан
SektorCT
Частый гость
Offline
Сообщений: 229
Re: Найти и выделить слово в TextArea
«
Ответ #7 :
Апрель 09, 2024, 20:57 »
Цитата: Apktyc от Апрель 09, 2024, 17:55
Так QSyntaxHighlighter именно для подсветки, дабы сразу подсветить во всем тексте искомую фразу (при этом не искажая формат текста).
С QML не работаю, но:
У QTextEdit есть document().
У QTextDocument есть find() возвращающий QTextCursor (с выделением искомого).
Дальше QTextEdit::setTextCursor, и на всякий случай есть QTextEdit::ensureCursorVisible(), который «scrolling the text edit if necessary».
Вижу так.
Ну так у меня вопрос же касался Quick а не виджетов, и мне класс не нужен, и таких методов нету у меня дял применения.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Найти и выделить слово в TextArea
«
Ответ #8 :
Апрель 10, 2024, 09:29 »
https://doc.qt.io/qt-6/qml-qtquick-controls-textarea.html#scrollable-textarea
и дальше скроллить ScrollView айтем. Как я понимаю, прямоугольник для скролла можно получить через
https://doc.qt.io/qt-6/qml-qtquick-textedit.html#positionToRectangle-method
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SektorCT
Частый гость
Offline
Сообщений: 229
Re: Найти и выделить слово в TextArea
«
Ответ #9 :
Апрель 10, 2024, 11:00 »
Цитата: kambala от Апрель 10, 2024, 09:29
https://doc.qt.io/qt-6/qml-qtquick-controls-textarea.html#scrollable-textarea
и дальше скроллить ScrollView айтем. Как я понимаю, прямоугольник для скролла можно получить через
https://doc.qt.io/qt-6/qml-qtquick-textedit.html#positionToRectangle-method
Спасибо за совет, получилось сделать то что искал.
Записан
Apktyc
Самовар
Offline
Сообщений: 133
Re: Найти и выделить слово в TextArea
«
Ответ #10 :
Апрель 10, 2024, 14:20 »
Цитата: SektorCT от Апрель 09, 2024, 20:57
Ну так у меня вопрос же касался Quick а не виджетов, и мне класс не нужен, и таких методов нету у меня дял применения.
Исходил из того, что QSyntaxHighlighter может сожрать QQuickTextDocument, и предполагал что остальные quick компоненты имеют идентичную функциональность. Не вышло.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Найти и выделить слово в TextArea
«
Ответ #11 :
Апрель 10, 2024, 15:45 »
Цитата: SektorCT от Апрель 10, 2024, 11:00
Цитата: kambala от Апрель 10, 2024, 09:29
https://doc.qt.io/qt-6/qml-qtquick-controls-textarea.html#scrollable-textarea
и дальше скроллить ScrollView айтем. Как я понимаю, прямоугольник для скролла можно получить через
https://doc.qt.io/qt-6/qml-qtquick-textedit.html#positionToRectangle-method
Спасибо за совет, получилось сделать то что искал.
написал бы хоть решение
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...