Qt实现简易功能的浏览器
效果图

主要模块(类)
Tool(主窗口,负责总的维护)
Tool.h文件
class Tool : public QWidget
{
Q_OBJECT
public:
Tool(QWidget *parent = Q_NULLPTR);
~Tool();
private:
void linkSignal(Web *web,webBrowser *wb);//为新对象连接信号槽
void initializeTab(webBrowser *wb);//初始化Tab
void newPageOperate(Web *, webBrowser *,QUrl );//新选项卡创建后的操作
private slots:
void on_Operate(QUrl);
private:
LoadWidget *m_loadWindow;
QString WindowTitle;
Ui::Form* m_ui;
QList< webBrowser*> m_webWindows;//显示窗口
QList<Web*> m_webs;//负责加载网页的每个对象
};
Web(继承自QWebEngineView用于网页的功能的实现)
Web.h文件
class Web : public QWebEngineView
{
Q_OBJECT
public:
explicit Web(QWidget* parent = Q_NULLPTR);
~Web();
QWebEngineView *createWindow(QWebEnginePage::WebWindowType type);
QUrl getUrl(int pos);//获取url
int getUrlPos(QUrl url);
int getListSize();
signals:
void urlChange(QUrl);
void openNewPage(QUrl );
private slots:
void on_getNewUrl(QString url);
private:
QList<QUrl> m_urlList;
QUrl tmpUrl;
};
webBrowser(窗口,负责维护Web与一下基本空间功能的实现)
webBrowser.h 文件
class webBrowser : public QWidget
{
Q_OBJECT
public:
webBrowser(QWidget *parent = Q_NULLPTR);
~webBrowser();
Web * getWeb();
void setFocus();//设置焦距保证url超出lineEidet长度后仍能从左显示
void initialize(QUrl url);//进行初始化
private:
Ui_webBrowserClass *ui;
Web *m_web;
};
LoadWidget(对加载图片进行展示的窗口)
class LoadWidget : public QDialog
{
Q_OBJECT
public:
LoadWidget(QWidget *parent = Q_NULLPTR);
~LoadWidget();
private:
Ui::LoadWidget ui;
QMovie *movie;//播放GIF使用
};
主要实现的功能
网页显示
//设置网页将要展示界面(参考整合自网络)
QStackedLayout* layout = new QStackedLayout(ui->url);
ui->url->setLayout(layout)

本文档详细介绍了使用Qt框架实现一个简易浏览器的过程,包括主窗口类Tool、网页显示类Web、窗口类webBrowser及加载动画类LoadWidget。浏览器实现了网页显示、前进后退、新选项卡打开和动态加载动画等功能。前进后退功能考虑了网页重定向问题,新选项卡通过QTabWidget实现,动态加载动画借助QMovie展示加载进度。
&spm=1001.2101.3001.5002&articleId=116030014&d=1&t=3&u=e25bd7bb6c634d46b734bb264d0fbcec)
517

被折叠的 条评论
为什么被折叠?



