Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Функция поиска


Автор: Serbis 24.3.2008, 17:27
Код

        QTextDocument *document = this->document();
    QTextCursor newCursor(document);

     while (!newCursor.isNull() && !newCursor.atEnd()) {
         newCursor = document->find(str, newCursor);

         if (!newCursor.isNull()) {
             newCursor.movePosition(QTextCursor::WordRight,
                                    QTextCursor::KeepAnchor);
         } else {
             QMessageBox::warning(this, tr("NFL"),
                             tr("Ничего не найдено!")); 
         }
     }

Проблема в том что если судить по сообщению о том что ничего не найдено, поиск работает корректно, но не происходит выделения текста. Курсор вообще никак не реагирует. this - дочерний класс QTextEdit. 

Автор: SABROG 24.3.2008, 17:46
Код

newCursor.movePosition(QTextCursor::StartOfWord);
newCursor.movePosition(QTextCursor::WordRight, QTextCursor::KeepAnchor);


А так пробывал ?

Или так попробуй:

Код

newCursor.movePosition(QTextCursor::WordLeft, QTextCursor::KeepAnchor);


Цитата

Note that the cursor does not have to be moved after each search and replace operation; it is always positioned at the end of the word that was just replaced.

Автор: Serbis 24.3.2008, 22:30
Проблема в том что я вообще не могу программно даже сдвинуть курсор...

Автор: SABROG 24.3.2008, 23:16
У меня двигается

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)