Archived:Navegador web, em Qt
Aquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.
Qt Quick should be used for all UI development on mobile devices. The approach described in this article (based on QWidget) is deprecated.
Qt Quick should be used for all UI development on mobile devices. The approach described in this article (based on QWidget) is deprecated.
Dados do artigo
Testado com
SDK: Qt 4.5
Compatibilidade
Plataforma(s): S60 3rd Edition FP1, S60 3rd Edition FP2, S60 5th Edition
Artigo
Palavras-chave: QWebView,QToolBar,QStatusBar
Tradução:
Originado de Archived:Web Browser in Qt
Por valderind4
Última alteração feita por hamishwillee
em 11 Oct 2012
Contents |
Introdução
Este é um simples navegador web desenvolvido em Qt. Ele suporta apenas o protocolo HTTP, deste modo é possível que você não consiga abrir nenhum tipo de página de login através deste navegador já que estas páginas necessitam de HTTPS.
Aqui a principal classe usada é QWebView. Com a ajuda desta classe você pode mostrar algumas páginas web na sua janela. É deste modo que eu tenho feito e desenvolvido um pequeno navegador web. Neste navegador você pode abrir sites com www.google.com, www.yahoo.com, www.forum.nokia.com, etc.
Compatibilidade
- Este código é compatível com Qt v4.5, salvo algumas pequenas atualizações de funções.
Recomendações
- Por favor, inclua QWebkit e QNetwork, durante o desenvolvimento.
Código fonte
#include "webBrowserDialog.h"
webBrowserDialog::webBrowserDialog(QWidget *parent)
: QWidget(parent)
{
lay=new QGridLayout();
back=new QPushButton("<<");
back->setToolTip("Back");
bar = new QStatusBar();
bar->resize(50,10);
progress=new QProgressBar();
progress->setTextVisible(0);
label=new QLabel();
progress->setMinimum(0);
progress->setMaximum(100);
bar->addWidget(progress);
progress->resize(10,10);
forward=new QPushButton(">>");
forward->setToolTip("Forward");
reload=new QPushButton("Reload");
reload->setToolTip("Reload");
stop=new QPushButton("X");
stop->setToolTip("Stop");
web=new QWebView();
load=new QPushButton("Load");
load->setToolTip("Load");
line=new QLineEdit("http://www.developer.nokia.com");
line->setToolTip("Type Your Address Here");
tool=new QToolBar();
bar->addWidget(progress);
bar->addWidget(label);
tool->addWidget(back);
tool->addWidget(forward);
tool->addWidget(reload);
tool->addWidget(stop);
tool->addWidget(line);
tool->addWidget(load);
lay->addWidget(tool,0,0);
lay->addWidget(web,1,0);
lay->addWidget(bar,2,0);
web->load(QUrl("http://www.developer.nokia.com"));
web->show();
QObject::connect(back,SIGNAL(clicked()),web,SLOT(back()));
QObject::connect(forward,SIGNAL(clicked()),web,SLOT(forward()));
QObject::connect(stop,SIGNAL(clicked()),web,SLOT(stop()));
QObject::connect(reload,SIGNAL(clicked()),web,SLOT(reload()));
QObject::connect(load,SIGNAL(clicked()),this,SLOT(viral()));
QObject::connect(web,SIGNAL(loadProgress(int)),progress,SLOT(setValue(int)));
setLayout(lay);
showMaximized();
}
webBrowserDialog::~webBrowserDialog()
{
}
void webBrowserDialog::viral()
{
QString str;
str=line->text();
web->load(QUrl(str));
web->show();
setWindowTitle(str);
QObject::connect(web,SIGNAL(loadProgress(int)),progress,SLOT(setValue(int)));
QObject::connect(web,SIGNAL(statusBarMessage(QString)),bar,SLOT(showMessage(QString)));
}
Cabeçalhos de arquivo
#include <QtGui/QWidget>
#include "ui_webBrowserDialog.h"
#include<QWidget>
#include<QWebView>
#include<QLineEdit>
#include<QGridLayout>
#include<QUrl>
#include<QPushButton>
#include<QToolBar>
#include<QString>
#include<QStatusBar>
#include<QProgressBar>
#include<QLabel>
class webBrowserDialog : public QWidget
{
Q_OBJECT
public:
webBrowserDialog(QWidget *parent = 0);
~webBrowserDialog();
private slots:
void viral();
private:
QGridLayout *lay;
QPushButton *back;
QPushButton *forward;
QPushButton *reload;
QPushButton *stop;
QWebView *web;
QPushButton *load;
QLineEdit *line;
QToolBar *tool;
QStatusBar *bar;
QProgressBar *progress;
QLabel *label;
QWidget *win;
};
#endif // WEBBROWSERDIALOG_H
Captura de tela
- Visão do emulador
- Abrindo.... forum.nokia.com
- Abrindo.... Yahoo.com


(no comments yet)