Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Pariah_War от Ноябрь 02, 2010, 01:01



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

Вот мой код :
Код
C++ (Qt)
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("Вибачте, неможливо знайти слово"));
                           }
              }
 
 
   }
 
Я не пойму в чем трабл : если делать это в отдельном проекте то все пашет , а если делать это в моем проекте то оно не ищет а переходит сразу на див. код.....