У меня есть приложение, которое должно использовать QWebView::setContent()
для загрузки некоторого содержимого HTML в QWebView. Все это происходит на встроенном устройстве с процессором ARMv5 (думаю, 400 МГц). В большинстве случаев я могу загрузить страницу в разумные сроки (до 5 секунд), однако иногда у меня есть контент, который занимает много времени для загрузки (~ 30 секунд для 300 Кбайт контента).QWebView setContent в отдельном потоке
Проблема в том, что вызов setContent
блокирует основной поток. Мне нужно иметь возможность обрабатывать события во время загрузки и, возможно, даже отменять загрузку, если пользователь решает не ждать больше.
Я думал о запуске вызова setContent
в другом потоке, чтобы он не блокировал обработку события, и я могу отменить его, если это необходимо. Тем не менее, я получаю страшный "widgets must be created in the GUI thread", и я не вижу возможности легко разрешить это.
Можно ли запустить QWebView::setContent
в отдельной теме? Если да, то как? Если нет, возможно ли обрабатывать события GUI, пока работает setContent
? Можно ли «отменить» звонок setContent
?
EDIT
Чтобы прояснить немного больше, чем на самом деле меня интересует, как быть в состоянии остановить setContent
вызов и/или обрабатывать GUI сообщений, так что интерфейс остается отзывчивым, с большими объемами данных с использованием setContent
.
EDIT 2
Для уточнения еще больше, я имею дело с длинным, статическим контентом, т.е. без JavaScript, просто много статического HTML, с помощью которого пользователь хочет прокручивать даже в то время как более загрузки содержание. Основная идея заключается в том, чтобы позволить ему/ей сходить с страницы, даже когда страница не загружена полностью.
Существует [аналогичная тема] (http://stackoverflow.com/questions/3931909/force-qwebview-to-download-web-page-content-in-a-separate-thread) – dschulz
Не совсем. Я прочитал много вопросов здесь о SO, но никто не решает мою проблему, чтобы отменить загрузку 'setContent', в результате чего mu GUI перестает отвечать на запросы. Хотя QWebView выполняет загрузку в фоновом режиме, это только для вторичных ресурсов, таких как изображения, таблицы стилей, а не для основного контента. Основное текстовое содержимое меня больше всего волнует. –