Работа с Сетевыми данными: простая загрузка страницы

Содержание

Слайд 2

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QWebView : структура Страница, полученная с помощью

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QWebView : структура

Страница, полученная с помощью
QWebView::page()

Главный

фрейм, полученный с помощью
QWebPage::MainFrame()
Слайд 3

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: КЛАСС QWEBPAGE action() - pageAction() QWEBPAGE triggerAction()

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: КЛАСС QWEBPAGE

action() - pageAction()

QWEBPAGE

triggerAction()
findText()
settings()

QWebPage::mainFrame()

load()
setUrl()
setHtml ()



loadStarted()
loadProgress()
loadFinished()

page->mainFrame()->load(url);

Слайд 4

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QWebView : свойства icon : const QIcon

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QWebView : свойства

icon : const  QIcon

modified : const bool

renderHints : QPainter::RenderHints

selectedText :

const QString

title : const QString

url : QUrl

Слайд 5

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: МЕТОДЫ НАВИГАЦИИ ui->webView->back(); ui->webView->forward(); ui->webView->reload ui->webView->stop();

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: МЕТОДЫ НАВИГАЦИИ

  ui->webView->back();      ui->webView->forward();    ui->webView->reload    ui->webView->stop();   

Слайд 6

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QACTION

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QACTION

Слайд 7

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QACTION

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QACTION

Слайд 8

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QACTION

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QACTION

Слайд 9

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QACTION

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: QACTION

Слайд 10

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: НАСТРОЙКИ QWebView WebView QWebSettings settings() QWebSettings::globalSettings()->setFontSize(QWebSettings::DefaultFontSize, 3); ui->webView->settings()->setFontSize(QWebSettings::DefaultFontSize, 3); #include

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: НАСТРОЙКИ QWebView

WebView

QWebSettings

settings()

QWebSettings::globalSettings()->setFontSize(QWebSettings::DefaultFontSize, 3);

ui->webView->settings()->setFontSize(QWebSettings::DefaultFontSize, 3);

#include

Слайд 11

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: КОНТЕКСТНОЕ МЕНЮ ДЛЯ QWebView void QWebView::contextMenuEvent QWidget::contentMenuEvent() QContextMenuEvent contextMenuPolicy Qt::DefaultContextMenu

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: КОНТЕКСТНОЕ МЕНЮ ДЛЯ QWebView

void QWebView::contextMenuEvent 

QWidget::contentMenuEvent()

QContextMenuEvent

contextMenuPolicy

Qt::DefaultContextMenu
Слайд 12

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТКРЫТИЕ НОВЫХ ОКОН В QWebView void MainWindow::on_webView_linkClicked(QUrl &arg1) { ui->webView->load(arg1); } ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТКРЫТИЕ НОВЫХ ОКОН В QWebView

void MainWindow::on_webView_linkClicked(QUrl

&arg1) {       ui->webView->load(arg1); }

ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);

Слайд 13

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТКРЫТИЕ НОВЫХ ОКОН В QWebView /* Разрешение

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТКРЫТИЕ НОВЫХ ОКОН В QWebView

/* Разрешение

на автоматическую загрузку картинок в странице*/
QWebSettings::globalSettings()->setAttribute(QWebSettings::AutoLoadImages,true);
/* Разрешение на запуск java-скриптов*/
QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled, true);
/* Разрешение на использование плагинов*/
QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true);
Слайд 14

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ДОБАВЛЕНИЕ АДРЕСНОЙ СТРОКИ … QLineEdit *UrlPath. #include

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ДОБАВЛЕНИЕ АДРЕСНОЙ СТРОКИ

… QLineEdit *UrlPath.
#include  
MainWindow::MainWindow(QWidget *parent) :                                   

QMainWindow(parent),    ui(new Ui::MainWindow) { …     UrlPath = new QLineEdit(this);     ui->toolBar->addWidget(UrlPath); … }
Слайд 15

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ДОБАВЛЕНИЕ АДРЕСНОЙ СТРОКИ private slots: ... void

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ДОБАВЛЕНИЕ АДРЕСНОЙ СТРОКИ


private slots: ... void slotGoEnterPressed();
void MainWindow::slotGoEnterPressed(){       ui->webView->load(QUrl(UrlPath->text())); }
connect(UrlPath,SIGNAL(returnPressed()),SLOT(slotGoEnterPressed()));

Слайд 16

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТОБРАЖЕНИЕ ПРОЦЕССА ЗАГРУЗКИ loadProgress(int) void MainWindow::on_webView_loadProgress(int progress)

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТОБРАЖЕНИЕ ПРОЦЕССА ЗАГРУЗКИ

loadProgress(int)

void MainWindow::on_webView_loadProgress(int progress)
{ ui->statusBar->showMessage("Загрузка

"+ui->webView->url().toString()+"...",500); }

private:

QProgressBar *PageProgress;

PageProgress = new QProgressBar(this);
PageProgress->setVisible(false);
ui->statusBar->addPermanentWidget(PageProgress);

PageProgress->setValue(progress);

Слайд 17

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТОБРАЖЕНИЕ ПРОЦЕССА ЗАГРУЗКИ

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТОБРАЖЕНИЕ ПРОЦЕССА ЗАГРУЗКИ

Слайд 18

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТОБРАЖЕНИЕ ИСТОРИИ #include void MainWindow::buildHistory(){ ui->menuHistory->clear(); //Очищаем

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТОБРАЖЕНИЕ ИСТОРИИ

#include

void MainWindow::buildHistory(){     ui->menuHistory->clear(); //Очищаем этот

пункт главного меню
    QAction *mAct;
    //Перебор набора интернет-адресов     foreach (QWebHistoryItem  HistoryItem, ui->webView->history()->items()){         QString current_url = HistoryItem.url().toString();         QAction *curHistMnu = ui->menuHistory->addAction(HistoryItem.icon(),current_url);         connect(curHistMnu, SIGNAL(triggered()), SLOT(slotLoadHistPage()));     } }
Слайд 19

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТОБРАЖЕНИЕ ИСТОРИИ ... private slots: void slotLoadHistPage();

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: ОТОБРАЖЕНИЕ ИСТОРИИ

... private slots: void slotLoadHistPage();

void MainWindow::slotLoadHistPage(){ QAction* a =

qobject_cast< QAction* >( sender() ); ui->webView->load(QUrl(a->text())); }
Слайд 20

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: УЛУЧШЕНИЕ МЕТОДА ЗАГРУЗКИ СТРАНИЦЫ void MainWindow::smartLoad(QString value){

РАБОТА С СЕТЕВЫМИ ДАННЫМИ: УЛУЧШЕНИЕ МЕТОДА ЗАГРУЗКИ СТРАНИЦЫ

void MainWindow::smartLoad(QString value){    QString

validLink = value; //Заменяем палочки на правильные    if (validLink.toLower().startsWith("http:\") || validLink.toLower().startsWith("ftp:\")){        validLink = validLink.replace(":\\","://");    } //Добавляем информацию о протоколе, если она совсем отсутствует    if (!validLink.toLower().startsWith("http") &&       !validLink.toLower().startsWith("ftp")) {         validLink = "http://" + validLink;    } //Загружаем страницу     ui->webView->load(validLink); //Обновляем на всякий случай меню с историей адресов     buildHistory(); }