Russian Qt Forum
Ноябрь 23, 2024, 05:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QWebView окончание загрузки  (Прочитано 3767 раз)
rizzoli
Гость
« : Июль 12, 2014, 08:49 »

Вообщем, загружаю страницу в QWebView, но так как страница состоит из нескольких фреймов - сигнал loadFinished вызывается несколько раз, по разу на фрейм. Сделал так:

Код:
QObject::connect(webView, SIGNAL(loadProgress(int)), this, SLOT(pageSave(int)));

void mainWindow::pageSave(int progress)
{
    if(progress == 100)
    {
        .................//сохранение
    }
}

Сохраняет, хоть и переписывает несколько раз, но как теперь узнать момент, когда все фреймы загрузились?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Июль 12, 2014, 10:27 »

Вообщем, загружаю страницу в QWebView, но так как страница состоит из нескольких фреймов - сигнал loadFinished вызывается несколько раз, по разу на фрейм. Сделал так:

Код:
QObject::connect(webView, SIGNAL(loadProgress(int)), this, SLOT(pageSave(int)));

void mainWindow::pageSave(int progress)
{
    if(progress == 100)
    {
        .................//сохранение
    }
}

Сохраняет, хоть и переписывает несколько раз, но как теперь узнать момент, когда все фреймы загрузились?

void loadFinished(bool ok)
Записан

rizzoli
Гость
« Ответ #2 : Июль 12, 2014, 10:50 »

Так он вызывается по разу на каждый фрейм, а сколько фреймов заранее я не знаю.
Записан
Bepec
Гость
« Ответ #3 : Июль 12, 2014, 11:00 »

Таки да, эта проблема интересовала и меня.
Тут проблема в определении количества фреймов и окончании загрузки страницы. Я так эту проблему и не решил к сожалению. К примеру страницы с javascript'ом в фрейме будет вечно подгружать данные.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 22.