crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Text Finder ....
KLIF
  опции профиля:
сообщение 2.11.2010, 0:50
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 90
Регистрация: 19.5.2010
Пользователь №: 1739

Спасибо сказали: 0 раз(а)




Репутация:   0  


Нужно сделать подсветку искомого слова., нашел пример Text Finder Example (http://doc.trolltech.com/4.7/uitools-textfinder.html) ...
Все банально просто есть lineEdit в которое вводиться искомое слово , и есть plainTextEdit в котором отображается сохраненный в файле текст....

Вот мой код :
Раскрывающийся текст
void DemAstPro::on_pushButton_2_find_help_clicked()

{

    QString searchString;
            searchString = ui->lineEdit_4_find_help->text();
             QTextDocument *document = ui->plainTextEdit_help->document();

             bool found = false;

             if (isFirstTime == false)
                 document->undo();

             if (searchString.isEmpty())
             {
                    QMessageBox::information(this, tr("Поле пошуку пусте"),
                        tr("Будь-ласка введіть слово для пошуку і натисніть Пошук"));
             }
             else
             {

                 QTextCursor highlightCursor(document);
                 QTextCursor cursor(document);

                 cursor.beginEditBlock();

                 QTextCharFormat plainFormat(highlightCursor.charFormat());
                 QTextCharFormat colorFormat = plainFormat;
                 colorFormat.setBackground(Qt::yellow);


                 while (!highlightCursor.isNull() && !highlightCursor.atEnd())
                 {
                     highlightCursor = document->find(searchString, highlightCursor, QTextDocument::FindWholeWords);

                     if (!highlightCursor.isNull())
                     {
                         found = true;
                         highlightCursor.movePosition(QTextCursor::WordRight,
                                                QTextCursor::KeepAnchor);
                         highlightCursor.mergeCharFormat(colorFormat);
                     }
                 }

                 cursor.endEditBlock();

                 isFirstTime = false;

                         if (found == false)
                            {
                             QMessageBox::information(this, tr("Слово не знайдене"), tr("Вибачте, неможливо знайти слово")); // вот сюда .....
                            }
               }

            
    }

Я не пойму в чем трабл : если делать это в отдельном проекте то все пашет , а если делать это в моем проекте то оно не ищет а переходит сразу на див. код.....

Сообщение отредактировал kwisp - 2.11.2010, 11:52
Причина редактирования: используй тег expand для динных сообщений
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
KLIF
  опции профиля:
сообщение 4.11.2010, 21:00
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 90
Регистрация: 19.5.2010
Пользователь №: 1739

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вопрос .... подскажите пожалуйста .....
Что нужно сделать : при поиске слова оно его подсвечивает , но при поиске второго слова первое остается подсвеченным .... а должно очищаться....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 11:45