zoukankan      html  css  js  c++  java
  • Qt中的QWebView

    一、Webkit了解
      Webkit是一个开源的浏览器引擎,chrome也使用了作为核心。Qt中对Webkit做了封装,主要有以下几个类:
    • QWebView :最常用的类,作为一个窗体控件

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

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

    • QWebSettings :网页渲染全局设置

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

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

    二、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被设定为允许链接
  • 相关阅读:
    Tomcat工作原理
    刚刚大学毕业,自己搭网站遇到的问题 一:tomcat中同时部署两个项目的问题
    maven常用命令
    修改redis端口号
    assert的基本用法
    Linux下mysql新建账号及权限设置
    tomcat设置http自动跳转为https访问
    spring mvc 实现文件上传下载
    svn: E155004 is already locked 解决方案
    数据库连接池druid
  • 原文地址:https://www.cnblogs.com/shiqi17/p/10644611.html
Copyright © 2011-2022 走看看