QT多标签浏览器
Posted 刘雄的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT多标签浏览器相关的知识,希望对你有一定的参考价值。
最近在用QT写个简单的浏览器,原来的版本是5.7,没有QWebView,而是使用QAxWidget加载ie。优点是打开网页速度快,但是当点击网页中的链接时,会自动调用windows的IE浏览器,水平有限,不知道如何在自己的程序中打开,搜索无果,不得已放弃使用QAxWidget(大神求教!!!),降低QT版本至5.6,使用QWebView。
(1)绘制QT界面
增加6个QToolButton和一个QLineEdit,图标在QT安装目录下搜索.png即可获得;
增加一个QTabWidget和一个QWebView,效果如下:
(2)添加槽函数用于打开网页,并链接地址栏的回车信号和槽函数
void LXBrowser::goWeb() { QString url = ui.addressLineEdit->text(); url = "http://" + url; // 需要加上http:://才能打开网页。。。有待改进 ui.webView->load(url); }
(3)连接QWebView中的linkClicked(const QUrl &)信号和槽函数,用于在新页面打开网页
connect(ui.webView, SIGNAL(linkClicked(const QUrl &)), this, SLOT(clickLink(const QUrl &)));
void LXBrowser::clickLink(const QUrl &linkUrl) { QWebView* newWebView = new QWebView(); newWebView->load(linkUrl); int index = ui.tabWidget->addTab(newWebView, linkUrl.fileName()); ui.tabWidget->setCurrentIndex(index); ui.addressLineEdit->setText(linkUrl.toString()); }
效果:
超级简单的浏览器就完成了,哈哈哈
存在问题:
1、前进、后退、停止、收藏、历史等功能尚未实现;
2、新标签的title;
3、打开网页慢,尤其是爱奇艺、优酷等视频或者大量图片的网站;
4、需要添加状态栏显示当前网页加载的百分比
以上是关于QT多标签浏览器的主要内容,如果未能解决你的问题,请参考以下文章
QT C++ 编写多窗口之间的跳转 在一个窗口中可以变化很多UI界面
26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段