总体介绍
QWebEngineView类提供了一个用于查看和编辑Web文档的小部件。
Web视图是Qt WebEngine Web浏览模块的主要小部件组件。它可以在各种应用程序中用于从Internet实时显示Web内容。
可以使用load()函数将Web站点加载到Web视图。 GET方法始终用于加载URL。
与所有Qt小部件一样,必须调用show()函数才能显示Web视图。下面的代码段说明了这一点:
view = QWebEngineView(self)
view.load(QUrl("http://qt-project.org/"))
view.show()
或者,setUrl()可用于加载网站。如果您有可用的HTML内容,则可以使用setHtml()。
在视图开始加载时发出loadStarted()信号,并且只要Web视图的元素完成加载(例如嵌入的图像或脚本),就会发出loadProgress()信号。完全加载视图时会发出loadFinished()信号。它的参数,是True还是Flase,表明加载是成功还是失败。
page()函数返回指向网页对象的指针。 QWebEngineView包含一个QWebEnginePage,它允许访问页面上下文中的QWebEngineHistory。
可以使用title()属性访问HTML文档的标题。此外,网站可以指定一个图标,可以使用属性iconUrl()URL或者使用icon()或其访问该图标。如果标题或图标发生变化,将发出相应的titleChanged(),iconChanged()和iconUrlChanged()信号。 zoomFactor()属性允许通过比例因子缩放网页的内容。
该小部件具有针对元素定制的上下文菜单,并包括在浏览器中有用的操作。对于自定义上下文菜单,或者在菜单或工具栏中嵌入操作,可以通过pageAction()获得各个操作。 Web视图维护返回操作的状态,但允许修改操作属性,如文本或图标。动作语义也可以通过triggerPageAction()直接触发。
如果要为允许用户打开新窗口的网站(如弹出窗口)提供支持,可以继承QWebEngineView并重新实现createWindow()函数。
下面我们演示一下通过QWebEngineView打开百度,简略的代码如下:
view = QWebEngineView(self)
view.load(QUrl("http://www.baidu.com/"))
view.show()
效果图如下:
我们再演示一个打开本地HTML,简略的代码如下:
view = QWebEngineView(self)
view.load(QUrl("C:/Users/Administrator/Desktop/paoku/index.html"))
view.show()
效果如下:
这里特别强调一下:QUrl里面的请放入绝对地址,不要放入类似:”./index.html”这种相对地址,即使是在同一目录下面。
可能你会说:我不,我就要用相对地址,怎么办?
这种情况的解决方式可以是这样的:
view = QWebEngineView(self)
url = QUrl(QFileInfo("./pie-simple.html").absoluteFilePath())
view.load(url)
返回包含文件名的绝对路径。
QUrl(QFileInfo("./pie-simple.html").absoluteFilePath())
绝对路径名由完整路径和文件名组成。 在Unix上,这将始终以root,’/‘目录开头。 在Windows上,这将始终以’D:/‘开头,其中D是驱动器号,但未映射到驱动器号的网络共享除外,在这种情况下,路径将以’// sharename /‘开头。 QFileInfo将大写驱动器号。
当然Python中也有类似的语言:
url = QUrl(os.path.abspath("./pie-simple.html"))
更多详细的内容,请参考官方文档: