最近在用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多标签浏览器(一)的更多相关文章

  1. 解决Flash和html在多标签浏览器中互访问题

    在Flash播放器运行时,将不同来源的资源划分到独立的沙箱(sandbox)内,不同沙箱之间不能 彼此操作数据(除非目标沙箱做过一些设置,授权其他沙箱可访问),这就是Flash的跨沙箱问题.当Flas ...

  2. Qt自定义标签按钮

    当你接触到Qt时,你会为它极为方便的跨平台方面感到吃惊,从而想尝试着使用Qt.渐渐地你会发现Qt自带的一些控件不能满足自己的需要,此时就需要我们自己定义一个属于自己的控件.总所周知,标签的风格设置类比 ...

  3. img标签浏览器缓存图片问题

    问题:项目中用的img标签及其src属性,但是发现浏览器会缓存图片,这样每次如果修改了图片,再重新打开预览发现图片还是原来的. 原因:因为src后面的请求路径不变,所以浏览器就认为是同一个图片,就不会 ...

  4. Qt 调用本地浏览器打开URL

    点击Qt某些控件,查找本地浏览器打开前端传递的URL. 方法一:直接写死本地浏览器地址 QString programAdress = "C:\Program Files (x86)\Goo ...

  5. QT设置标签字体大小和颜色

    ui.label是QLabel ui.label_4->setText("some text"); //设置字号 QFont ft; ft.setPointSize(12); ...

  6. 案例分享:Qt政务标签设计器,标签排版软件定制与打印

    需求   1.标签设计器:  2.具备文字排版功能:  3.支持六种排版格式:  4.排版后可以输出打印(demo中不包含):  5.排版后可以输出标签的指定协议文本FBD格式:  6.可以调整对应标 ...

  7. base标签浏览器兼容问题

    <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" ...

  8. 关于img标签浏览器自带的边框,清除边框的解决方式(即img[src=""] img无路径情况下,灰色边框去除解决方法)

    详解img[src=""] img无路径情况下,灰色边框去除解决方法 1.Js解决办法 <html> <head> <meta charset=&qu ...

  9. html a标签包含a标签,浏览器的行为处理

    a标签包含a标签 浏览器可能是为了避免a的转跳重复,所以禁止了a标签包含a标签,如何你的代码中有a标签包含a标签,那么浏览器将会重新编码外层a标签,取外层a标签与内层a标签的差集,加上外层a标签,并把 ...

随机推荐

  1. 201521123061 《Java程序设计》第二周学习总结

    1. 本章学习总结 (一)了解了JAVA中基本的数据类型 (1)整数:分为short与int类型其分别占2个字节和4个字节而long型的则占8个字节. (2)字节byt:长度为1,当字节表示整数的时候 ...

  2. 201521123029《java程序设计》第2周学习总结

    1. 本周学习总结 (1)完成了课后习题,对所学知识进一步巩固. (2)学会了JAVA中的选择结构,循环结构,其中条件必须为布尔表达式,与C++非0即真不同. (3)学会java中的break和con ...

  3. 201521123050 《Java程序设计》第10周学习总结

    1. 本周学习总结 2. 书面作业 1.finally,题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? 只有执行过try才会执行finally ...

  4. 微信小程序中发送模版消息注意事项

    在微信小程序中发送模版消息 参考微信公众平台Api文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html#模版消息管理 此参考地址 ...

  5. Day-18: 电子邮件

    ---恢复内容开始--- 假设要从**@163.com发送邮件到**@sina.com,会经过下面几个过程: 首先,你得使用邮件代理软件(也就是MUA:Mail User Agent),例如Outlo ...

  6. 浅谈JAVA中“增强”类的某个方法的几个中方法!

    一.继承 使用场景:能够控制这个类的构造的时候,才可以使用继承. 优点:简单容易使用, 缺点:耦合性大大的增强,不利于后期的维护,所以对于继承这种方法,谨慎使用.  代码实现:二.装饰者模式 使用场景 ...

  7. temp--达州银行

    达州银行现场 服务器IP地址 192.168.1.234 ilink / ilink 自己电脑需要设置为固定IP 192.168.1.XXX 子网掩码 255.255.255.0 192.168.1. ...

  8. Python-老男孩-02_装饰器_面向对象_封装_继承_异常_接口_数据库

    装饰器其实也是一个函数,它的参数是一个函数 ; 其它函数与装饰器之间建立联系是通过 @装饰器函数名, 感觉有点像Spring的面向切面编程 装饰器函数,如何处理原函数的参数.?  装饰器 原函数返回值 ...

  9. Centos6.7安装chrome

    cd /etc/yum.repos.dwget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo yum install c ...

  10. python django 使用 haystack:全文检索的框架

    haystack:全文检索的框架whoosh:纯Python编写的全文搜索引擎jieba:一款免费的中文分词包 首先安装这三个包 pip install django-haystackpip inst ...