码迷,mamicode.com
首页 > 其他好文 > 详细

QT多标签浏览器(一)

时间:2017-10-24 00:02:51      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:图标   line   网站   web   col   class   cli   加载   后退   

       最近在用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多标签浏览器(一)

标签:图标   line   网站   web   col   class   cli   加载   后退   

原文地址:http://www.cnblogs.com/liuxiong/p/7719607.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!