Qt中的QWebView

一、Webkit了解

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

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

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

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

  • QWebSettings :网页渲染全局设置

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

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

Qt中的QWebView

二、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被设定为允许链接
上一篇:vim 使用学习操作


下一篇:bootstrap基础学习小记(一)简介模板、全局样式