![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
breeve |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Подскажите, как можно сделать маркер в тексте. Для примера на этом сайте, если в поиск вбить фразу, то он выделит в постах те слова которые я вбил: желтый фон, красный текст.
Нашел как можно покрасить текст, во всем TextEdit'е но как покрасить определенные слова? И как сделать так что после установки маркера например на два слова, сделать так чтобы нажав правой только на эти слова в контекстном меню был Action убрать выделение? Заранее благодарен |
|
|
abc |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
чтобы нажав правой только на эти слова в контекстном меню вряд ли возможно |
|
|
breeve |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Цитата вряд ли возможно Почему это не может быть возможным? Ну если нет стандартных средств я предполагаю примерно такой алгоритм: - Найти позицию фразы(ее координаты а точнее область); - Перехват нажатия правой кнопки мыши в данной области; - И добавление в контекстное меню позиции. В каком пункте могут возникнуть проблемы? |
|
|
breeve |
![]()
Сообщение
#4
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Сделал так чтобы менял выделенный фрагмент текста:
Сообщение отредактировал breeve - 3.4.2011, 3:19 |
|
|
abc |
![]()
Сообщение
#5
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
В каком пункте могут возникнуть проблемы? пожалуй, я погорячился) - поставили курсор. предположим, он стоит где-то в середине подсвеченной фразы - передвигаем его назад, и с каждым передвижением проверяем, какой под курсором backgroundcolor - как только backgroundcolor стал белым, выделяем, начиная с этой позиции, известное число символов, и изменяем backgroundcolor |
|
|
breeve |
![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Возникло несколько несколько вопросов:
- как выделить текст программно? - можно ли как-то покрасить без использования функции find() ? (в определенном случае он окрашивает не то что я выделил) |
|
|
abc |
![]()
Сообщение
#7
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
find производит выделение указанного текста. Без выделения, как я понимаю, тут не обойтись. Что именно не так?
как выделить текст программно? вот это вопрос. Из документации я понял, как выделить слово под курсором void QTextCursor::select ( SelectionType selection ) как выделить несколько предпочитаемых символов, я не узнал |
|
|
breeve |
![]()
Сообщение
#8
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Что именно не так? Выделяет не то что надо. Причем только в этом случае(если текст одинаковый и выделять именно так - с одного слова на другое) неправильно.Пример на видео. Код:
|
|
|
breeve |
![]()
Сообщение
#9
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 1.9.2024, 4:48 |