Простой Web-браузер

Simple Web browser/main.cpp
Simple Web browser/browser.h
Simple Web browser/browser.cpp

В среду Qt 4.4 был включен модуль QtWebKit. Благодаря этому добавить функциональность Веб-браузера в ваше Qt приложение стало очень просто. Модуль QtWebKit основан на движке с открытым исходным кодом WebKit, поддерживающим HTML, XHTML, CSS, формат векторной графики SVG, JavaScript.
Для использования классов модуля QtWebKit необходимо добавить следующую строку в файл проекта:

QT += webkit

Эта строчка необходима, т.к. по умолчанию модуль QtWebKit (в отличие от модулей QtCore и QtGui) в процесс сборки не включен.
Для загрузки и отображения веб-сайтов воспользуемся объектом класса QWebView:
view = new QWebView(this);

Для загрузки сайта используем метод QWebView::load(const QUrl & url):
void browser::load()
{
    QString name("http://" + adress->text());
    view->load(QUrl(name));
}

Добавим несколько кнопок для навигации и свяжем их с объектом класса QWebView:
fileToolBar = addToolBar(tr("File"));
adress = new QLineEdit(fileToolBar);
fileToolBar->addWidget(adress);
backward = new QPushButton(tr("Backward"), fileToolBar);
fileToolBar->addWidget(backward);
forward = new QPushButton(tr("Forward"), fileToolBar);
fileToolBar->addWidget(forward);
reload = new QPushButton(tr("Reload"), fileToolBar);
fileToolBar->addWidget(reload);
stop = new QPushButton(tr("Stop"), fileToolBar);
fileToolBar->addWidget(stop);
...
connect(backward,SIGNAL(clicked()),view,SLOT(backward()));
connect(forward,SIGNAL(clicked()),view,SLOT(forward()));
connect(reload,SIGNAL(clicked()),view,SLOT(reload()));
connect(stop,SIGNAL(clicked()),view,SLOT(stop()));

И наконец добавим индикатор прогресса выполения для отображения степени загрузки страницы:
progress = new QProgressBar(fileToolBar);
fileToolBar->addWidget(progress);
connect(view,SIGNAL(loadProgressChanged(int)),progress,SLOT(setValue(int)));
SimpleWB.png
page_revision: 22, last_edited: 1237711245|%e %b %Y, %H:%M %Z (%O ago)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License