Qt 开发浏览器(基于QWebEngineView)

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

效果图

在这里插入图片描述

主要模块(类)

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)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pointer=NULL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值