Qt中的QWebView

一、Webkit了解

 
Webkit是一个开源的浏览器引擎,chrome也使用了作为核心。Qt中对Webkit做了封装,主要有以下几个类:

  • QWebView :最常用的类,作为一个窗体控件

  • QWebPage :包含在QWebView中,表示一个Document

  • QWebFrame :包含在QWebPage中,表示一个Frame

  • QWebSettings :网页渲染全局设置

  • QWebHistory :用于浏览的历史记录

WebView 使用 WebPage 来实现页面,WebPage 使用 WebFrame 来实现页面元素

1226829-20190402185054532-249390779.png

二、QWebView
  • WebView中两种用来显示内容的方法
  1. setUrl : 比如在使用VS code vue开发中,我在在本地端口生成了页面,然后监听本地端口,掉用QWebView的setUrl(QUrl(http://127.0.0.1:XXXX))就可以了

  2. setContent : 直接将html源码放到QWebView中,以及网页中的元素(如:图片,样式,脚本)就采用“file:/// absolutePath”的方式了。

  3. QWebPage类和QWebView类一样,都用于查看和编辑网页,不同的是,从两者的包含关系上我们可以知道,QWebView可以用于打开多个网页,而里面具体的网页对象就是QWebPage。QWebPage通过mainframe()方法可以得到More QWebView-like functions,如load(), setUrl() 和 setHtml()。

2.2 QWebView中的信号与槽

 

  • 信号与槽:
    在QT中信号与槽,作为一种非常好用的对象间的通信方式。本质是函数,信号与槽函数能携带任意类型、数量的参数。
    且从QOobject 或其子类(例如Qwidget)派生的类都能够包含信号和槽。当对象改动其状态时,信号就由该对象发射出去,但是对象并不知道另一端是谁在接收这个信号。实现了信息封装。槽用于接收信号,是普通的对象成员函数。一个槽也不知道是否有所有信号和自己相连接。一个槽能接收多个信号,一个信号也能连接多个槽。信号也能连接信号。

  • 自定义信号:
    在QT中允许自定义信号,并使用emit()触发,发射信号。
    自定义信号使用 signals关键字。而在PyQt中使用 QtCore.pySignal() 可带参如pySignal(int) 或者pySignal(str)这样

  • 槽:
    定义槽函数,普通函数使用slots关键字修饰。
    PyQt中,使用@QtCore.pySlot() 装饰器修饰函数就行,也可以有参数,如@pySlot(int) @pySlot(str)

  • 信号与槽函数链接:
    如:mySignal = QtCore.pySignal()
    @pySlot()
    def fun():
        pass
    mySgnal.connect(fun)

  • 发射信号PyQt中:
    mySignal.emit()
    如果带参,整型:mySignal.emit(2)
    字符串: mySignal.emit('sq')

void back ()
void forward ()
void print ( QPrinter * printer ) const
void reload ()
void stop ()
19 public slots inherited from QWidget
1 public slot inherited from QObject
void iconChanged ()
void linkClicked ( const QUrl & url )
void loadFinished ( bool ok )
void loadProgress ( int progress )
void loadStarted ()
void selectionChanged ()
void statusBarMessage ( const QString & text )
void titleChanged ( const QString & title )
void urlChanged ( const QUrl & url )
1 signal inherited from QWidget
1 signal inherited from QObject
  1. linkClicked信号介绍
    linkClicked信号能够发送的前提是对应的QWebPage::linkDelegationPolicy被设定为允许链接

转载于:https://www.cnblogs.com/shiqi17/p/10644611.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值