33. 网页浏览器

一、网页浏览器

  PySide6 提供了可以浏览网页的控件 QWebEngineViewQWebEnginePage,可以利用它们编写网页浏览器,QWebEngineView 位于 QtWebEngineWidgets 模块中,QWebEnginePage 位于 QtWebEngineCore 模块中。

  我们可以在终端中使用 pip 安装 PySide6 模块。默认是从国外的主站上下载,因此,我们可能会遇到网络不好的情况导致下载失败。我们可以在 pip 指令后通过 -i 指定国内镜像源下载

pip install pyside6 -i https://mirrors.aliyun.com/pypi/simple

  国内常用的 pip 下载源列表:

二、网页浏览器控件

  网页浏览器控件 QWebEngineView 继承自 QWidget,用于管理其内部的网页 QWebEnginePage,设置内部网页的一些属性。用 QWebEngineView 创建网页浏览器控件的方法如下所示:

QWebEngineView(parent:QWidget=None)

  其中 parent网页浏览器控件所在的窗体或容器控件

  网页浏览器控件 QWebEngineView 的常用方法如下所示:

# 实例方法
load(url:QUrl) -> None                                                          # 加载网页

url() -> QUrl                                                                   # 获取网页
setUrl(url:QUrl) -> None                                                        # 设置网页

createStandardContextMenu() -> QMenu                                            # 创建标准菜单
createWindow(type:WebWindowType) -> QWebEngineView                              # 创建QWebEngineView的子类,并重写该函数,用于弹出新的窗口

findText(subString:str, options:FindFlag={}) -> None                            # 查找网页中的文本
hasSelection() -> bool                                                          # 获取当前页中是否有选中的内容
selectedText() -> str                                                           # 获取当前页中选中的内容

icon() -> QIcon                                                                 # 获取当前页的图标
iconUrl() -> QUrl                                                               # 获取当前页的图标地址

zoomFactor() -> float                                                           # 获取缩放比例
setZoomFactor(factor:float) -> None                                             # 设置网页缩放比例,参数取值范围为0.25~5.0,默认是1.0

print(printer:QPrinter) -> None                                                 # 默认使用A4纸打印网页

# 将网页输出成pdf文档
printToPdf(filePath:str, layout:QPageLayout=QPageLayout(QPageSize(QPageSize.A4), QPageLayout.Portrait, QMarginsF()), ranges:QPageRanges={})

title() -> str                                                                  # 获取网页标题
history() -> QWebEngineHistory                                                  # 返回浏览器中当前网页的访问记录
page() -> QWebEnginePage                                                        # 获取当前的网页

# 静态方法
static forPage(page:WebEnginePage) -> QWebEngineView                            # 返回与网页关联的网页浏览器

# 槽函数                      
reload() -> None                                                                # 重新加载网页
forward() -> None                                                               # 向前浏览网页
back() -> None                                                                  # 向后浏览网页
stop() -> None                                                                  # 停止加载网页

  网页浏览器控件 QWebEngineView 的信号如表下所示:

urlChanged(url:QUrl)                                                            # 网页地址发生改变时发送信号
titleChanged(title:str)                                                         # 网页标题发生改变时发送信号
iconChanged(icon:QIcon)                                                         # 网页图标发生改变时发送信号
iconUrlChanged(url:QUrl)                                                        # 网页图标的url地址发生改变时发送信号
selectionChanged()                                                              # 网页中选择的内容发生改变时发送信号

loadStarted()                                                                   # 开始加载网页时发送信号
loadProgress(progress:int)                                                      # 加载网页元素时发送信号,参数的范数是0~100
loadFinished(success:bool)                                                      # 网页加载完成时发送信号,成功是True,出现错误是False

printRequested()                                                                # 请求打印时发送信号
printFinished(success:bool)                                                     # 打印完成时发送信号
pdfPrintingFinished(filePath:str, success:bool)                                 # 打印成pdf文件结束时发送信号

  主要方法是用 load() 方法或 setUrl() 方法 加载网页。用 url() 方法 获取当前网页的 QUrl 地址。根据浏览历史记录,用 forward() 方法 向前浏览网页。用 back() 方法 向后浏览网页。用 reload() 方法 重新加载网页;如果已经有 HTML 格式的文本,用 setHtml() 方法 显示 HTML 格式的文本内容。用 history() 方法 获取浏览记录 QWebEngineHistory

  对于网页中需要弹出新窗口的链接,需要创建 QWebEngineView 的子类,并重写 createWindow(WebWindowType:QWebEnginePage.WebWindowType) 函数,其中参数 WebWindowTypeQWebEnginePage.WebWindowType 类型的枚举值,用于判断链接的类型,可以取值如下:

QWebEnginePage.WebWindowType.WebBrowserWindow                                   # 0,纯浏览器窗口
QWebEnginePage.WebWindowType.WebBrowserTab                                      # 1,浏览器切换卡
QWebEnginePage.WebWindowType.WebDialog                                          # 2,网页对话框
QWebEnginePage.WebWindowType.WebBrowserBackgroundTab                            # 3,没有隐藏当前可见的网页浏览器控件的切换卡

  新建一个 webView.py 文件,创建 QWebEngineView 的子类,并重写 createWindow(WebWindowType) 函数。

from PySide6.QtWebEngineWidgets import QWebEngineView
from PySide6.QtWebEngineCore import QWebEnginePage

class MyWebView(QWebEngineView):
    def __init__(self, parent=None):
        super().__init__(parent)
  
    def createWindow(self, type:QWebEnginePage.WebWindowType):
        """重写createWindow()方法
        """
        return self

  新建一个 ui.py 文件,用来存放 UI 相关的代码。

from PySide6.QtWidgets import QWidget
from PySide6.QtWidgets import QLabel, QPushButton, QLineEdit
from PySide6.QtWidgets import QHBoxLayout, QVBoxLayout

from webView import MyWebView

class MyUi:
    def setupUi(self, window:QWidget):
        window.resize(800, 600)                                                 # 1.设置窗口对象大小

        vertical_layout = QVBoxLayout(window)                                   # 2.创建垂直布局

        horizontal_layout = QHBoxLayout()                                       # 3.创建水平布局,并添加到垂直布局中
        vertical_layout.addLayout(horizontal_layout)

        self.url_label = QLabel("网址(&D):")                                    # 4.创建标签,并添加到水平布局中
        horizontal_layout.addWidget(self.url_label)

        self.url_lineEdit = QLineEdit()                                         # 5.创建输入框,并添加到水平布局中
        horizontal_layout.addWidget(self.url_lineEdit)
        self.url_label.setBuddy(self.url_lineEdit)                              # 6.设置伙伴控件

        self.back_button = QPushButton("后退(&B)")                              # 7.创建按钮,并添加到水平布局中
        horizontal_layout.addWidget(self.back_button)

        self.forward_button = QPushButton("前进(&F)")
        horizontal_layout.addWidget(self.forward_button)

        self.rolad_button = QPushButton("重新加载(&R)")
        horizontal_layout.addWidget(self.rolad_button)

        self.home_button = QPushButton("回到主页(&H)")
        horizontal_layout.addWidget(self.home_button)

        self.webEngineView = MyWebView()                                        # 6.创建一个WebView,并添加到垂直布局中
        vertical_layout.addWidget(self.webEngineView)

        self.webEngineView.setUrl("https://www.yuque.com/star-light-glimmer")                   # 7.设置初始网址
        self.url_lineEdit.setText(self.webEngineView.url().toString())

  新建一个 widget.py 文件,用来存放业务逻辑相关的代码。

import sys

from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtCore import QUrl

from ui import MyUi

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()                                                      # 1.调用父类Qwidget类的__init__()方法

        self.__ui = MyUi()
        self.__ui.setupUi(self)                                                 # 2.初始化页面

        self.__ui.url_lineEdit.returnPressed.connect(self.load_url)             # 3.按钮点击时触发信号
        self.__ui.back_button.clicked.connect(self.__ui.webEngineView.back)
        self.__ui.forward_button.clicked.connect(self.__ui.webEngineView.forward)
        self.__ui.rolad_button.clicked.connect(self.__ui.webEngineView.reload)
        self.__ui.home_button.clicked.connect(self.home_button_clicked)
        self.__ui.webEngineView.urlChanged.connect(self.update_url)

    def load_url(self):
        url = QUrl.fromUserInput(self.__ui.url_lineEdit.text())                 # 1.获取URL
        if url.isValid():                                                       # 2.判断URL是否有效
            self.__ui.webEngineView.load(url)                                   # 3.加载URL

    def home_button_clicked(self):
        self.__ui.webEngineView.load("https://www.yuque.com/star-light-glimmer")

    def update_url(self, url:QUrl):
        self.__ui.url_lineEdit.setText(url.toString())


if __name__ == "__main__":
    app = QApplication(sys.argv)                                                # 1.创建一个QApplication类的实例
    window = MyWidget()                                                         # 2.创建一个窗口
    window.show()                                                               # 3.展示窗口
    sys.exit(app.exec())                                                        # 4.进入程序的主循环并通过exit()函数确保主循环安全结束

三、网页

  网页 QWebEnginePage 是指网页浏览器控件 QWebEngineView 中的网页内容,用 QWebEngineViewpage() 方法可以获取 QWebEnginePage,用 setPage() 方法可以给浏览器控件设置网页。

  用 QWebEnginePage 创建网页实例的方法如下所示:

QWebEnginePage(parent:QObject=None)
QWebEnginePage(profile:QWebEngineProfile,parent:QObject=None)

  其中参数 profile对网页的设置、脚本、缓存地址、cookie 的保存策略 等。

  网页 QWebEnginePage 的常用方法如下所示:

# 实例方法
load(url:QUrl) -> None                                                          # 加载QUrl地址网页
load(request:QWebEngineHttpRequest) -> None                                     # 加载特定的网页
isLoading() -> bool                                                             # 判断当前网页是否正在加载

url() -> QUrl                                                                   # 获取当前网页的地址
requestedUrl() -> QUrl                                                          # 获取当前网页的地址
setUrl(url:QUrl) -> None                                                        # 加载指定的网页地址

# 给网页需要的设备进行权限设置
setFeaturePermission(securityOrigin:QUrl, feature:Feature, policy:PermissionPolicy) -> None
setUrlRequestInterceptor(interceptor:QWebEngineUrlRequestInterceptor) -> None   # 设置拦截器

action(action:WebAction) -> QAction                                             # 获取网页的指定动作,用于例建右键快捷菜单

backgroundColor() -> QColor                                                     # 获取网页背景颜色
setBackgroundColor(color:QColor) -> None                                        # 设置背景颜色

contentsSize() -> QSizeF                                                        # 获取网页内容的尺寸

devToolsPage() -> QWebEnginePage                                                # 获取开发工具网页
setDevToolsPage(page:QWebEnginePage) -> None                                    # 设置开发者工具

download(url:QUrl, filename:str="") -> None                                     # 下载资源到文件中

findText(subString:str, options:FindFlag={}) -> None                            # 查找指定的内容
findText(subString:str, options:FindFlag, resultCallback:PyCallable) -> None    # 调用指定的函数查找,函数参数是查找结果
hasSelection() -> bool                                                          # 获取当前页中是否有选中的内容
selectedText() -> str                                   # 获取当前页中选中的内容

icon() -> QIcon                                                                 # 获取网页的图标
iconUrl() -> QUrl                                                               # 获取网页的地址

isAudioMuted() -> bool                                                          # 获取是否处于静音状态
setAudioMuted(muted:bool) -> None                                               # 设置网页静音状态
recentlyAudible() -> bool                                                       # 获取是否播放过音额

isVisible() -> bool                                                             # 获取网页是否可见
setVisible(visible:bool) -> None                                                # 设置网页是否可见
Pid()int获取渲染进度
replaceMisspelledWord(replacement:str)None用指定的文本替换不能识别的
文本
runJavaScript(scriptSource: str.worldld;int=None运行Java脚本
title() -> str                                                                  # 获取网页标题
history() -> QWebEngineHistory                                                  # 获取历史导航

# 将网页输出成pdf文档
printToPdf(filePath:str, layout:QPageLayout=QPageLayout(QPageSize(QPageSize.A4), QPageLayout.Portrait, QMarginsF()), ranges:QPageRanges={})

profile() -> QWebEngineProfile                                                  # 获取QWebEngineProfile

renderProcessPid() -> int                                                       # 获取渲染进度

replaceMisspelledWord(replacement:str) -> None                                  # 用指定的文本替换不能识别的文本 

# 运行JavaScript脚本
runJavaScript(scriptSource:str, resultCallback:PyCallable) -> None
runJavaScript(scriptSource:str, worldId:int=0, resultCallback:PyCallable={}) -> None

# 保存网页内容到文件中
save(filePath:str, format:SavePageFormat=QWebEngineDownloadRequest.MimeHtmlSaveFormat) -> None

scrollPosition() -> QPointF                                                     # 获取网页滚动的位置

setHtml(html:str, baseUrl:QUrl=QUrl()) -> None                                  # 显示HTMI文档内容

webChannel() -> QWebChannel                                                     # 获取当前的网络通道
setWebChannel(arg__1:QWebChannel, worldId:int=0) -> None                        # 设置网络通道

zoomFactor() -> float                                                           # 获取缩放比例
setZoomFactor(factor:float) -> None                                             # 设置网页缩放比例,参数取值范围为0.25~5.0,默认是1.0

settings() -> QWebEngineSettings                                                 # 获取对网页的设置

# 虚拟方法
acceptNavigationRequest(url:QUrl, type:NavigationType, isMainFrame:bool) -> bool# 重写该函数,设置导航到新地址的处理方式
createWindow(type:WebWindowType) -> QWebEnginePage                              # 重写该方法创建新网页
triggerAction(action:WebAction, checked: bool=false) -> None                    # 执行指定的动作
# 设置选择文件时(如上传文件),文件选择模式
chooseFiles(mode:FileSelectionMode, oldFiles:list[str], acceptedMimeTypes:list[str]) -> list[str]

  网页 QWebEnginePage 的信号如表下所示:

urlChanged(url:QUrl)                                                            # 网页地址发生改变时发送信号

titleChanged(title:str)                                                         # 网页标题发生改变时发送信号

iconChanged(icon:QIcon)                                                         # 网页图标发生改变时发送信号
iconUrlChanged(url:QUrl)                                                        # 网页图标的url地址发生改变时发送信号

selectionChanged()                                                              # 网页中选择的内容发生改变时发送信号

visibleChanged(visible:bool)                                                    # 网页可见性发生改变时发送信号
geometryChangeRequested(geom:QRect)                                             # 网页位置和尺寸发生改变时发送信号

contentsSizeChanged(size:QSizeF)                                                # 网页大小发生改变时发送信号

audioMutedChanged(muted:bool)                                                   # 网页音频静音状态发生改变时发送信号
recentlyAudibleChanged(recentlyAudible:bool)                                    # 静音状态发生改变时发送信号

scrollPositionChanged(position:QPointF)                                         # 网页滚动位置发生改变时发送信号

loadingChanged(loadingInfo:QWebEngineLoadingInfo)                               # 加载发生改变时发送信号

renderProcessPidChanged(pid:int)                                                # 染过程发生改变时发送信号

fullScreenRequested(fullScreenRequest:QWebEngineFullScreenRequest)              # 全屏显示时发送信号

newWindowRequested(request:QWebEngineNewWindowRequest)                          # 在另一个窗口中加载新网页时发送信号

windowCloseRequested()                                                          # 关闭窗口时发送信号

authenticationRequired(requestUrl:QUrl, authenticator:QAuthenticator)           # 需要验证时发送信号

navigationRequested(request:QWebEngineNavigationRequest)                        # 调用acceptNavigationRequest()方法时发送信号

# 需要代理授权时发送信号
proxyAuthenticationRequired(requestUrl:QUrl, authenticator:QAuthenticator, proxyHost:str)

linkHovered(url:str)                                                            # 鼠标悬浮在链接上时发送信号

certificateError(certificateError:QWebEngineCertificateError)                   # 证书出错时发送信号

loadStarted()                                                                   # 开始加载网页时发送信号
loadProgress(progress:int)                                                      # 加载网页元素时发送信号,参数的范数是0~100
loadFinished(success:bool)                                                      # 网页加载完成时发送信号,成功是True,出现错误是False

findTextFinished(result:QWebEngineFindTextResult)                               # 查找文本结束时发送信号

pdfPrintingFinished(filePath:str, success:bool)                                 # 打印成pdf文件结束时发送信号

# (QWebEngineClientCertifieateSelection)选择客户证书时发送信号
selectClientCertificate(clientCertSelection:QWebEngineClientCertificateSelection)

# 渲染非正常中断时发送信号
renderProcessTerminated(terminationStatus:RenderProcessTerminationStatus, exitCode:int)

  重写 createWindow(type:WebWindowType) 函数,单击链接后需要产生新网页时可以创建新的网页,如果不重写该函数或者返回值不是 QWebEnginePage 对象,将发送 newWindowRequested() 信号;

  重写 acceptNavigationRequest(url:QUrl, type:NavigationType, isMainFrame:bool) 函数方法可以 设置导航到新地址的处理方式,其中参数 typeQWebEnginePage.NavigationType 类型的枚举值,用于 确定导航的原因,可以取值如下:

QWebEnginePage.NavigationType.NavigationTypeLinkClicked                         # 单击链接
QWebEnginePage.NavigationType.NavigationTypeTyped                               # 加载
QWebEnginePage.NavigationType.NavigationTypeFormSubmitted                       # 表格提交
QWebEnginePage.NavigationType.NavigationTypeBackForward                         # 前进或后退动作
QWebEnginePage.NavigationType.NavigationTypeReload                              # 重新加载
QWebEnginePage.NavigationType.NavigationTypeRedirect                            # 目录或服务器重新定位或自动重新加载
QWebEnginePage.NavigationType.NavigationTypeOther                               # 除以上方式之外的其它方式

  用 findText(subString:str, options:QWebEnginePage.FindFlag, resultCallback:PyCallable) 方法可以 在网页中查找指定的文本,查找结束后会发送 findTextFinished(QWebEngineFindTextResult) 信号和调用 function(QWebEngineFindTextResult) 函数,参数 QWebEngineFindTextResult查找后的结果对象,其有两个方法 numberOfMatches()activeMatch(),分别 获取匹配的个数当前匹配的索引;参数 optionsQWebEnginePage.FindFlags 类型的枚举值,用于设置查找方向,可以取值如下:

QWebEnginePage.FindFlags.FindBackward                                           # 向后查找
QWebEnginePage.FindFlags.FindCaseSensitively                                    # 大小写敏感,默认向前查找和大小写不敏感

  用 setFeaturePermission(securityOrigin:QUrl, feature:QWebEnginePage.Feature, policy:QWebEnginePage.PermissionPolicy) 方法可以 给网页需要的一些设备进行权限设置

  其中参数 featureQWebEnginePage.Feature 类型的枚举值,可以取值如下所示;

QWebEnginePage.Feature.Notifications                                            # 网站通知最终用户,对应值为0
QWebEnginePage.Feature.Geolocation                                              # 当地硬件或服务,对应值为1
QWebEnginePage.Feature.MediaAudioCapture                                        # 音设备,如麦克风,对应值为2
QWebEnginePage.Feature.MediaVideoCapture                                        # 视频设备,如摄像头,对应值为3
QWebEnginePage.Feature.MediaAudioVideoCapture                                   # 音额和视频设备,对应值为4
QWebEnginePage.Feature.MouseLock                                                # 将光标锁定在浏览器中,通常用于游戏中,对应值为5
QWebEnginePage.Feature.DesktopVideoCapture                                      # 视频输出,如多人可共享桌面,对应值为6
QWebEnginePage.Feature.DesktopAudioVideoCapture                                 # 视频和音频输出,对应值为7

  参数 policy 用来是 QWebEnginePage.PermissionPolicy 类型的枚举值,用于 设置权限,可以取值如下:

QWebEnginePage.PermissionPolicy.PermissionUnknown                               # 不确定是否已经由用户授权
QWebEnginePage.PermissionPolicy.PermissionGrantedByUser                         # 用户已经授权
QWebEnginePage.PermissionPolicy.PermissionDeniedByUser                          # 用户已经拒绝

  用 chooseFiles(mode:QWebEnginePage.FileSelectionMode, oldFiles:Sequence[str]) 方法 设置网页中选择文件时(如上传文件)的文件选择模式oldFiles提供建议的文件名前半部分。其中参数 modeQWebEnginePage.FileSelectionMode 类型的枚举值,可以取值如下:

QWebEnginePage.FileSelectionMode.FileSelectOpen                                 # 只能选择一个文件
QWebEnginePage.FileSelectionMode.FileSelectOpenMultiple                         # 可选多个文件
QWebEnginePage.FileSelectionMode.FileSelectUploadFolder                         # 选择文件夹

  用 save(filePath:str, format:QWebEngineDownloadRequest.SavePageFormat) 方法 保存网页内容到指定文件,其中参数 formatQWebEngineDownloadRequest.SavePageFormat 类型的枚举值,用来 设置文件格式,可以取值如下:

QWebEngineDownloadRequest.SavePageFormat.UnknownSaveFormat
QWebEngineDownloadRequest.SavePageFormat.SingleHtmlSaveFormat                   # 保存到一个HTML文件中,有些信息,如图片不保持
QWebEngineDownloadRequest.SavePageFormat.CompleteHtmlSaveFormat                 # 保存整个HTML文件,有些信息,如图片保存到文件夹中
QWebEngineDownloadRequest.SavePageFormat.MimeHtmlSaveFormat                     # 保存成MIME HTML格式

  用 status() 方法 获取加载状态,返回值取值如下:

QWebEngineLoadingInfo.LoadStatus.LoadStartedStatus                              # 加载开始,对应的值0
QWebEngineLoadingInfo.LoadStatus.LoadStoppedStatus                              # 加载停止,对应的值1
QWebEngineLoadingInfo.LoadStatus.LoadSucceededStatus                            # 加载成功,对应的值2
QWebEngineLoadingInfo.LoadStatus.LoadFailedStatus                               # 加载失败,对应的值3

  如果加载失败,可以用 errorDomain() 方法 获取失败类型,返回值取值如下:

QWebEngineLoadingInfo.ErrorDomain.NoErrorDomain                                 # 出错类型未知,对应的值0
QWebEngineLoadingInfo.ErrorDomain.InternalErrorDomain                           # 内容不能被PySide识别,对应的值11
QWebEngineLoadingInfo.ErrorDomain.ConnectionErrorDomain                         # 网络连接出错 ,对应的值2
QWebEngineLoadingInfo.ErrorDomain.CertificateErrorDomain                        # 证书出错,对应的值3
QWebEngineLoadingInfo.ErrorDomain.HttpErrorDomain                               # HTTP连接出错 ,对应的值4
QWebEngineLoadingInfo.ErrorDomain.FtpErrorDomain                                # FTP连接出错,对应的值5
QWebEngineLoadingInfo.ErrorDomain.DnsErrorDomain                                # DNS连接出错,对应的值6

  destination() 方法 获取新网页的类型,返回值是枚举类型 QWebEngineNewWindowRequest.DestinationType,可取值如下:

QWebEngineNewWindowRequest.DestinationType.InNewWindow                          # 新窗口中,对应的值0
QWebEngineNewWindowRequest.DestinationType.InNewTab                             # 同窗口的切换卡中,对应的值1
QWebEngineNewWindowRequest.DestinationType.InNewDialog                          # 在没有切换卡、工具栏和URL输入框的新窗口中,对应的值2
QWebEngineNewWindowRequest.DestinationType.InNewBackgroundTab                   # 在同一个窗口中,没有隐藏当前可见的浏览器),对应的值3

四、历史记录

  每个网页都会有一个 QWebEngineHistory 对象,QWebEngineHistory 对象由多个历史记录构成,每个历史记录称为 QWebEngineHistoryItem(历史项),QWebEngineHistoryItem用于记录曾经访问过的 QUrl 地址和访问时间。用 QWebEnginePageQWebEngineViewhistory() 方法可以 获得网页的 QWebEngineHistory 对象

  QWebEngineHistory 的常用方法如下:

# 实例方法
currentItem() -> QWebEngineHistoryItem                                          # 获取当前的历史项
currentItemIndex() -> int                                                       # 获取当前的历史项索引

goToItem(item:QWebEngineHistoryItem) -> None                                    # 将指定的历史项作为当前项,网页也同时跳转
forward() -> None                                                               # 将当前项之后的历史项作为当前项.网页也同时前进
back() -> None                                                                  # 将当前项之前的历史项作为当前项.网页也同时后退

forwardItem() -> QWebEngineHistoryItem                                          # 获取当前项之后的历史项
forwardItems(maxItems:int) -> list[QWebEngineHistoryItem]                       # 获取当前项之后的最多maxltems个历史项

backItem() -> QWebEngineHistoryItem                                             # 返回当前项之前的历史项
backItems(maxItems:int) -> list[QWebEngineHistoryItem]                          # 返回当前项之前的最多maxltems个历史项

canGoForward() -> bool                                                          # 判断是否可以前进
canGoBack() -> bool                                                             # 判断是否可以后退

items() -> list[QWebEngineHistoryItem]                                          # 返回所有历史项
count() -> int                                                                  # 返回历史项的数量
clear() -> None                                                                 # 清除所有历史项

  QWebEngineHistoryItem 的常用方法如下:

# 实例方法
url() -> QUrl                                                                   # 获取历史项关联的网址
title() -> str                                                                  # 获取历史项关联的网页的标题
lastVisited() -> QDateTime                                                      # 获取历史项关联的网页最后访问日期和时间
iconUrl() -> QUrl                                                               # 获取历史项关联的图标的网址
isValid() -> bool                                                               # 判断历史项是否有效
originalUrl() -> QUrl                                                           # 获取历史项关联的初始网址
posted @ 2025-01-21 19:00  星光映梦  阅读(122)  评论(0)    收藏  举报