crossplatform.ru

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


  Ответ в Метод findText(), проблема с флагом QWebPage::HighlightAllOccurrences
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
QMainWindow Дата 11.8.2011, 18:51
  Никто не делал поиска? :)
QMainWindow Дата 10.8.2011, 12:09
  Привет всем!
Интересная штука творится у меня с флагом QWebPage::HighlightAllOccurrences. После его установки, текст, который я ищу подсвечивается, но не ищется, т.е. поиск перестает бегать по всему документу.
Вот код:
Раскрывающийся текст
#include "FindDialog.h"
#include "ui_FindDialog.h"

FindDialog::FindDialog(QWidget *parent) : QDialog(parent), ui(new Ui::FindDialog)
{
    ui->setupUi(this);
    connect(ui->FindForwardButton, SIGNAL(clicked()), this, SLOT(findForward()));
    connect(ui->FindBackwardButton, SIGNAL(clicked()), this, SLOT(findBackward()));
    connect(ui->highlightAllCB, SIGNAL(toggled(bool)), this, SLOT(highlightAll(bool)));
    connect(ui->FindCaseSensitivelyCB, SIGNAL(toggled(bool)), this, SLOT(findCaseSensitive(bool)));
    connect(ui->SearchEdit, SIGNAL(textChanged(QString)), this, SLOT(textToFind(QString)));
    this->setFixedSize(333,94);
    caseSensitive = highlight = false;
}

void FindDialog::findForward()
{
    if(!ui->SearchEdit->text().isEmpty()) emit searchParameters(highlight, caseSensitive, Down, text);
}

void FindDialog::findBackward()
{
    if(!ui->SearchEdit->text().isEmpty()) emit searchParameters(highlight, caseSensitive, Up, text);
}

void FindDialog::highlightAll(bool highlight)
{
    highlight ? this->highlight = true : this->highlight = false;
}

void FindDialog::findCaseSensitive(bool caseSensitive)
{
    caseSensitive ? this->caseSensitive = true : this->caseSensitive = false;
}

void FindDialog::textToFind(QString text)
{
    this->text = text;
}

FindDialog::~FindDialog()
{
    delete ui;
}


Установка флагов в метод тут:
Раскрывающийся текст
void Viewer::find(bool highlight, bool caseSensitive, int direction, QString &text)
{
    QWebPage::FindFlags flag1, flag2, flag3;
    if(highlight) flag1 = QWebPage::HighlightAllOccurrences;
    if(caseSensitive) flag2 = QWebPage::FindCaseSensitively;
    if(direction == FindDialog::Up) flag3 = QWebPage::FindBackward;
    this->findText(text, flag1 | flag2 | flag3 | QWebPage::FindWrapsAroundDocument);
}

Да, и еще. Когда этот флаг убираю, закрываю окно поиска, то подсветка всех совпадений все равно остается...
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 14.7.2025, 8:50