Форум программистов, компьютерный форум, киберфорум
Наши страницы

Qt

Войти
Регистрация
Восстановить пароль
 
deltaforsing
1 / 1 / 0
Регистрация: 05.11.2015
Сообщений: 7
#1

Совершение поиска по выделенному тексту - C++ Qt

27.04.2016, 01:33. Просмотров 360. Ответов 2
Метки c++, qt (Все метки)

Нуждаюсь в помощи знающих.
Пишу простенький текстовый редактор. Нужно произвести поиск выделенного текста по textEdit. Желательно не просто перемещать курсор на найденный фрагмент, а и подсвечивать найденное, или просто выделять текст. К примеру, в поле textEdit забит английский алфавит, выделяем мышью "defg", и после поиска, что бы оно выделило цветом данное сочетание букв.

На просторах форума нарыл реализацию поиска:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
// ...
    QList<QTextEdit::ExtraSelection> sel;
    ui->textEdit->moveCursor(QTextCursor::Start);
    QString s = ui->lineEdit->text();
    while(ui->textEdit->find(s))
    {
        QTextEdit::ExtraSelection extra;
        extra.format.setBackground(QColor(Qt::green).lighter(125));
        extra.cursor = ui->textEdit->textCursor();
        sel.append(extra);
    }
    ui->textEdit->setExtraSelections(sel);
    ui->textEdit->moveCursor(QTextCursor::End);
Попытался прикрутить туда поиск выделенного, а не поиск введённого в lineEdit:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
QTextCursor cursor;
    QString s = cursor.selectedText();
    QList<QTextEdit::ExtraSelection> sel;
        ui->textEdit->moveCursor(QTextCursor::Start);
 
        while(ui->textEdit->find(s))
        {
            QTextEdit::ExtraSelection extra;
            extra.format.setBackground(QColor(Qt::green).lighter(125));
            extra.cursor = ui->textEdit->textCursor();
            sel.append(extra);
        }
        ui->textEdit->setExtraSelections(sel);
        ui->textEdit->moveCursor(QTextCursor::End);
То ли оно не ищет именно выделенное(Чему я не удивлен. Синтаксис определения выделенного текста должен быть совсем иной), то ли не работает поиск.

Сюда подходят два способа:
C++ (Qt)
1
2
3
QString QTextCursor::selectedText () const
 
QTextDocumentFragment QTextCursor::selection () const
Но как их прикрутить - ума не приложу

При попытке присвоить чему-то значение, возвращаемое QString QTextCursor::selectedText () const, Qt ругается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2016, 01:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Совершение поиска по выделенному тексту (C++ Qt):

Как применить код к выделенному тексту? - JavaScript
При выделении слова test и нажатии на кнопку, код всегда применяется к первому слову test. Как сделать, чтоб если было выбрано третье слово...

Добовление тегов к выделенному тексту в textarea - jQuery
Здравствуйте, я пишу свой блог и мне надо сделать так чтобы когда ты выделил текст в textarea и нажал картинку (например &quot;Добавить ссылку&quot;)...

VB6 Как в RichTextBox выделенному тексту присвоить charset - Visual Basic
Поскольку в richtext можно писать на различных языках - то можно Увы, но SelCharset я не вижу, есть всякие SelBold

VB Outlook. Как обратиться к выделенному тексту в окне предварительного просмотра Outlook? - VBA
Здравствуйте! Можете помочь? Мне нужно подцепить в макросе на VB Outlook 2007 текст, выделенный в поле предварительного просмотра писем. Не...

Подскажите FTP клиент с возможностью поиска по тексту. - Софт
Необходим FTP клиент, который сможет искать заданный текст в .txt, .tpl, .html, .php файлах прям на FTP сервере. Под Win такое умел делать...

Заданий рядок тексту. Визначити, скільки разів зустрічається цей рядок тексту в текстовому файлі - Turbo Pascal
1. Створити або відкрити текстовий (типізований, нетипізований) файл. 2. Виконати над текстовим (типізованим, нетипізованим) файлом...

2
icpu
391 / 304 / 68
Регистрация: 10.03.2011
Сообщений: 1,323
Записей в блоге: 2
27.04.2016, 06:48 #2
Один из вариантов - не самый подходящий, конечно, http://doc.qt.io/qt-5/qsyntaxhighlighter.html#details
0
deltaforsing
1 / 1 / 0
Регистрация: 05.11.2015
Сообщений: 7
27.04.2016, 16:57  [ТС] #3
Цитата Сообщение от icpu Посмотреть сообщение
qsyntaxhighlighter
С подсветкой найденного проблем нет.
Проблема состоит в том, что бы получить выделенный курсором текст(как вы выделяете его мышью) и искать его в файле.

При значении QString s = "20"; while(ui->textEdit->find(s) оно ищет то что нужно, и выделяет цветом найденное.
0
Миниатюры
Совершение поиска по выделенному тексту  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2016, 16:57
Привет! Вот еще темы с ответами:

Совершение вызова из приложения - Программирование Android
Добрый день! Вопрос такой, во втором активити необходимо принимать номер телефона по ключу &quot;name2&quot;. В главном активити стоит условие, в...

Совершение анимации по положению мыши - C# WPF
Хочу сделать чтобы контролка &quot;выезжала&quot; (это и будет анимацией) при наведении курсора на определенную зону. Существуют ли готовые решения,...

Прорисовка доски для игры в нарды, и совершение ходов - Java
Привет всем. Ребята, разрабатываю короткие нарды в качестве учебного проекта на Java. Возник вопрос, ответ на который не могу найти...

ListView фильтр по выделенному - MS Access
Люди добрые помогите кто чем может как в ListView организовать такую штучку как фильтр по выделенному типа на какой записи в каком столбце...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru