QTextEdit, маркер |
Здравствуйте, гость ( Вход | Регистрация )
QTextEdit, маркер |
breeve |
2.4.2011, 23:07
Сообщение
#1
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Подскажите, как можно сделать маркер в тексте. Для примера на этом сайте, если в поиск вбить фразу, то он выделит в постах те слова которые я вбил: желтый фон, красный текст.
Нашел как можно покрасить текст, во всем TextEdit'е но как покрасить определенные слова? И как сделать так что после установки маркера например на два слова, сделать так чтобы нажав правой только на эти слова в контекстном меню был Action убрать выделение? Заранее благодарен |
|
|
abc |
3.4.2011, 0:35
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
чтобы нажав правой только на эти слова в контекстном меню вряд ли возможно |
|
|
breeve |
3.4.2011, 1:10
Сообщение
#3
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Цитата вряд ли возможно Почему это не может быть возможным? Ну если нет стандартных средств я предполагаю примерно такой алгоритм: - Найти позицию фразы(ее координаты а точнее область); - Перехват нажатия правой кнопки мыши в данной области; - И добавление в контекстное меню позиции. В каком пункте могут возникнуть проблемы? |
|
|
breeve |
3.4.2011, 2:17
Сообщение
#4
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Сделал так чтобы менял выделенный фрагмент текста:
Сообщение отредактировал breeve - 3.4.2011, 3:19 |
|
|
abc |
3.4.2011, 13:06
Сообщение
#5
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
В каком пункте могут возникнуть проблемы? пожалуй, я погорячился) - поставили курсор. предположим, он стоит где-то в середине подсвеченной фразы - передвигаем его назад, и с каждым передвижением проверяем, какой под курсором backgroundcolor - как только backgroundcolor стал белым, выделяем, начиная с этой позиции, известное число символов, и изменяем backgroundcolor |
|
|
breeve |
3.4.2011, 23:35
Сообщение
#6
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Возникло несколько несколько вопросов:
- как выделить текст программно? - можно ли как-то покрасить без использования функции find() ? (в определенном случае он окрашивает не то что я выделил) |
|
|
abc |
4.4.2011, 11:47
Сообщение
#7
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
find производит выделение указанного текста. Без выделения, как я понимаю, тут не обойтись. Что именно не так?
как выделить текст программно? вот это вопрос. Из документации я понял, как выделить слово под курсором void QTextCursor::select ( SelectionType selection ) как выделить несколько предпочитаемых символов, я не узнал |
|
|
breeve |
4.4.2011, 18:50
Сообщение
#8
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Цитата Что именно не так? Выделяет не то что надо. Причем только в этом случае(если текст одинаковый и выделять именно так - с одного слова на другое) неправильно.Пример на видео. Код:
|
|
|
breeve |
10.4.2011, 23:09
Сообщение
#9
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
|
|
|
Текстовая версия | Сейчас: 31.10.2024, 18:58 |