QWebEnginePage 类

QWebEnginePage 类提供了一个对象来查看和编辑网页文档。更多...

头文件 #include <QWebEnginePage>
CMakefind_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmakeQT += webenginecore
继承 QObject

公共类型

枚举Feature { Notifications, Geolocation, MediaAudioCapture, MediaVideoCapture, MediaAudioVideoCapture, …, DesktopAudioVideoCapture }
枚举FileSelectionMode { FileSelectOpen, FileSelectOpenMultiple, FileSelectUploadFolder, FileSelectSave }
枚举FindFlag { FindBackward, FindCaseSensitively }
标志FindFlags
枚举JavaScriptConsoleMessageLevel { InfoMessageLevel, WarningMessageLevel, ErrorMessageLevel }
枚举类LifecycleState { Active, Frozen, Discarded }
枚举NavigationType { NavigationTypeLinkClicked, NavigationTypeTyped, NavigationTypeFormSubmitted, NavigationTypeBackForward, NavigationTypeReload, …, NavigationTypeOther }
枚举PermissionPolicy { PermissionUnknown, PermissionGrantedByUser, PermissionDeniedByUser }
枚举RenderProcessTerminationStatus { NormalTerminationStatus, AbnormalTerminationStatus, CrashedTerminationStatus, KilledTerminationStatus }
枚举WebAction { NoWebAction, Back, Forward, Stop, Reload, …, ChangeTextDirectionRTL }
枚举WebWindowType { WebBrowserWindow, WebBrowserTab, WebDialog, WebBrowserBackgroundTab }

属性

公开函数

QWebEnginePage(QObject *parent = nullptr)
QWebEnginePage(QWebEngineProfile *profile, QObject *parent = nullptr)
虚拟~QWebEnginePage()
QAction *action(QWebEnginePage::WebAction action) const
QColorbackgroundColor() const
QSizeFcontentsSize() const
(since 6.6) QStringdevToolsId() const
QWebEnginePage *devToolsPage() const
voiddownload(const QUrl &url, const QString &filename = QString())
voidfindText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void (const QWebEngineFindTextResult &)> &resultCallback = std::function<void(const QWebEngineFindTextResult &)>())
boolhasSelection() const
QWebEngineHistory *history() const
QIconicon() const
QUrliconUrl() const
QWebEnginePage *inspectedPage() const
boolisAudioMuted() const
boolisLoading() const
boolisVisible() const
QWebEnginePage::LifecycleStatelifecycleState() const
voidload(const QUrl &url)
voidload(const QWebEngineHttpRequest &request)
voidprintToPdf(const QString &filePath, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges &ranges = {})
voidprintToPdf(const std::function<void (const QByteArray &)> &resultCallback, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges &ranges = {})
QWebEngineProfile *profile() const
boolrecentlyAudible() const
QWebEnginePage::LifecycleStaterecommendedState() const
qint64renderProcessPid() const
voidreplaceMisspelledWord(const QString &replacement)
QUrlrequestedUrl() const
voidrunJavaScript(const QString &scriptSource, const std::function<void (const QVariant &)> &resultCallback)
voidrunJavaScript(const QString &scriptSource, quint32 worldId = 0, const std::function<void (const QVariant &)> &resultCallback = {})
voidsave(const QString &filePath, QWebEngineDownloadRequest::SavePageFormat format = QWebEngineDownloadRequest::MimeHtmlSaveFormat) const
QWebEngineScriptCollection &scripts()
QPointFscrollPosition() const
QStringselectedText() const
voidsetAudioMuted(bool muted)
voidsetBackgroundColor(const QColor &color)
voidsetContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl())
voidsetDevToolsPage(QWebEnginePage *devToolsPage)
voidsetFeaturePermission(const QUrl &securityOrigin, QWebEnginePage::Feature feature, QWebEnginePage::PermissionPolicy policy)
voidsetHtml(const QString &html, const QUrl &baseUrl = QUrl())
voidsetInspectedPage(QWebEnginePage *page)
voidsetLifecycleState(QWebEnginePage::LifecycleState state)
voidsetUrl(const QUrl &url)
voidsetUrlRequestInterceptor(QWebEngineUrlRequestInterceptor *interceptor)
voidsetVisible(bool visible)
voidsetWebChannel(QWebChannel *channel, quint32 worldId = 0)
voidsetZoomFactor(qreal factor)
QWebEngineSettings *settings() const
QStringtitle() const
voidtoHtml(const std::function<void (const QString &)> &resultCallback) const
voidtoPlainText(const std::function<void (const QString &)> &resultCallback) const
virtual voidtriggerAction(QWebEnginePage::WebAction action, bool checked = false)
QUrlurl() const
QWebChannel *webChannel() const
qrealzoomFactor() const

重写的公共函数

virtual boolevent(QEvent *e) override

信号

voidaudioMutedChanged(bool muted)
voidauthenticationRequired(const QUrl &requestUrl, QAuthenticator *authenticator)
voidcertificateError(const QWebEngineCertificateError &certificateError)
voidcontentsSizeChanged(const QSizeF &size)
voidfeaturePermissionRequestCanceled(const QUrl &securityOrigin, QWebEnginePage::Feature feature)
voidfeaturePermissionRequested(const QUrl &securityOrigin, QWebEnginePage::Feature feature)
(since 6.4) voidfileSystemAccessRequested(QWebEngineFileSystemAccessRequest request)
voidfindTextFinished(const QWebEngineFindTextResult &result)
voidfullScreenRequested(QWebEngineFullScreenRequest fullScreenRequest)
voidgeometryChangeRequested(const QRect &geom)
voidiconChanged(const QIcon &icon)
voidiconUrlChanged(const QUrl &url)
voidlifecycleStateChanged(QWebEnginePage::LifecycleState state)
voidlinkHovered(const QString &url)
voidloadFinished(bool ok)
voidloadProgress(int progress)
void加载开始()
(since 6.2) voidloadingChanged(const QWebEngineLoadingInfo &loadingInfo)
(since 6.2) voidnavigationRequested(QWebEngineNavigationRequest &request)
(since 6.2) voidnewWindowRequested(QWebEngineNewWindowRequest &request)
voidpdfPrintingFinished(const QString &filePath, bool success)
voidprintRequested()
voidproxyAuthenticationRequired(const QUrl &requestUrl, QAuthenticator *authenticator, const QString &proxyHost)
voidrecentlyAudibleChanged(bool recentlyAudible)
voidrecommendedStateChanged(QWebEnginePage::LifecycleState state)
voidregisterProtocolHandlerRequested(QWebEngineRegisterProtocolHandlerRequest request)
voidrenderProcessPidChanged(qint64 pid)
voidrenderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus terminationStatus, int exitCode)
voidscrollPositionChanged(const QPointF &position)
voidselectClientCertificate(QWebEngineClientCertificateSelection clientCertificateSelection)
voidselectionChanged()
voidtitleChanged(const QString &title)
voidurlChanged(const QUrl &url)
voidvisibleChanged(bool visible)
(since 6.7) voidwebAuthUxRequested(QWebEngineWebAuthUxRequest *request)
voidwindowCloseRequested()

受保护的函数

virtual boolacceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame)
virtual QStringListchooseFiles(QWebEnginePage::FileSelectionMode mode, const QStringList &oldFiles, const QStringList &acceptedMimeTypes)
virtual QWebEnginePage *createWindow(QWebEnginePage::WebWindowType type)
virtual voidjavaScriptAlert(const QUrl &securityOrigin, const QString &msg)
virtual booljavaScriptConfirm(const QUrl &securityOrigin, const QString &msg)
virtual voidjavaScriptConsoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID)
virtual booljavaScriptPrompt(const QUrl &securityOrigin, const QString &msg, const QString &defaultValue, QString *result)

详细说明

Web引擎页面 包含了HTML文档的内容,导航过的链接的历史以及动作。

QWebEnginePage的API与QWebEngineView非常类似,因为它仍然提供了常用的函数,例如action()(在QWebEngineView中称为pageAction()),triggerAction()和findText()。

页面可以使用load()或setUrl()来加载。或者,如果您已经有了可用的HTML内容,您可以使用setHtml()。始终使用GET方法来加载URL。

QWebEnginePage 类还提供了获取当前页面所加载的 URL(见 url())以及最初请求加载的 URL(见 requestedUrl())的方法。这些方法使得在加载过程中 DNS 解析或重定向发生之前和之后都可以检索到 URL。如果加载成功,requestedUrl() 也会与添加到页面历史(见 QWebEngineHistory)中的 URL 匹配。

可以使用 title() 属性访问 HTML 页面的标题。此外,页面还可能指定一个图标,可以借助 icon() 属性或其 URL(见 iconUrl() 属性)来访问。如果标题或图标发生变化,相应的 titleChanged()、iconChanged() 以及 iconUrlChanged() 信号将被发射。zoomFactor() 属性允许通过缩放因子来缩放网页内容。

当页面开始加载时,会发出 loadStarted() 信号;当网页的某个元素完成加载(例如嵌入式图像或脚本)时,会发出 loadProgress() 信号。当页面内容全部加载完成时(不管脚本执行或页面渲染如何),会发出 loadFinished() 信号。该信号的参数是布尔值,表示加载操作是否成功。

HTML 文档在一个网页的 主框架 中加载。如果它引用了 子框架(由 <frame><iframe> 元素定义),它们被视为内容的一部分。子框架只能通过 JavaScript 单独访问。

网站定义 安全源 以安全地互访问资源的客户端脚本或数据库。源包括一个主机名、一个协议和一个端口号。例如,http://www.example.com/my/page.htmlhttp://www.example.com/my/overview.html 在这种情况下允许共享相同的数据库或通过 HTML 框架集和 JavaScript 访问彼此的文档。同时,http://www.malicious.com/evil.html 被阻止访问 http://www.example.com/ 的资源,因为它们属于不同的安全源。默认情况下,本地协议如 file://qrc:// 被视为相同的安全源,并且可以访问彼此的资源。默认情况下,本地资源被限制访问远程内容,这意味着 file:// 将无法访问 http://domain.com/foo.html

可以使用 runJavaScript() 执行网页中的脚本,要么在主 JavaScript 世界 中,与其他来自网页内容的 JavaScript 一起,要么在其自己的独立世界中。虽然可以从任何世界访问页面的 DOM,但定义在一个世界中的函数的 JavaScript 变量不能从另一个世界访问。QWebEngineScript::ScriptWorldId 为此提供了一些预定义的 ID。使用不带世界 ID 的 runJavaScript() 版本与在 MainWorld 中运行脚本相同。

可以使用FocusOnNavigationEnabled设置,使与页面相关的视图在发生导航操作时(例如加载或重新加载页面或浏览历史记录)自动接收焦点。

成员类型文档

枚举 QWebEnginePage::Feature

此枚举描述了用户可能被要求授予或拒绝访问的平台功能访问类别

常量描述
QWebEnginePage::Notifications0用户端的Web通知。
QWebEnginePage::Geolocation1位置硬件或服务。
QWebEnginePage::MediaAudioCapture2音频捕获设备,例如麦克风。
QWebEnginePage::MediaVideoCapture3视频设备,例如摄像头。
QWebEnginePage::MediaAudioVideoCapture4音频和视频捕获设备。
QWebEnginePage::MouseLock5鼠标锁定,即将鼠标指针锁定到WebView中,通常用于游戏。
QWebEnginePage::DesktopVideoCapture(自Qt 5.10起 }}6视频输出捕获,即用户显示的捕获,例如用于屏幕共享的目的。
QWebEnginePage::DesktopAudioVideoCapture(自Qt 5.10起 }}7音频和视频输出捕获。

另请参阅 featurePermissionRequested(),featurePermissionRequestCanceled(),setFeaturePermission(),和PermissionPolicy()。

枚举 QWebEnginePage::FileSelectionMode

此枚举指示chooseFiles()函数的实现是否应该只返回一个文件或可以返回多个文件

常量描述
QWebEnginePage::FileSelectOpen0只返回一个文件名。
QWebEnginePage::FileSelectOpenMultiple1返回多个文件名。
QWebEnginePage::FileSelectUploadFolder2允许用户指定一个用于上传的单个现有文件夹。
QWebEnginePage::FileSelectSave3指定要创建的新文件。

另请参阅 chooseFiles()。

枚举 QWebEnginePage::FindFlag
标志 QWebEnginePage::FindFlags

此枚举描述了findText()函数可用的选项。这些选项可以从以下列表中按位或组合在一起

常量描述
QWebEnginePage::FindBackward1向后搜索而不是向前。
QWebEnginePage::FindCaseSensitively2默认情况下,findText()不区分大小写。指定此选项将行为更改为区分大小写的搜索操作。

FindFlags类型是QFlags<FindFlag>的typedef。它存储FindFlag值的按位或组合。

枚举 QWebEnginePage::JavaScriptConsoleMessageLevel

此枚举描述了JavaScript控制台消息可以具有的不同严重程度级别

常量描述
QWebEnginePage::InfoMessageLevel0此消息纯粹是信息的,可以安全地忽略。
QWebEnginePage::WarningMessageLevel1此消息通知有关意外行为或可能需要关注的问题。
QWebEnginePage::ErrorMessageLevel2此消息表示已经发生错误。

枚举类 QWebEnginePage::LifecycleState

此枚举描述了页面的生命周期状态

常量描述
QWebEnginePage::LifecycleState::Active0正常状态。
QWebEnginePage::LifecycleState::Frozen1低CPU使用状态,其中大多数HTML任务源已挂起。
QWebEnginePage::LifecycleState::Discarded2资源使用极低的状态,整个浏览上下文被丢弃。

另见 lifecycleState页面生命周期APIWebEngine生命周期示例

此枚举描述了导航请求的类型

常量描述
QWebEnginePage::NavigationTypeLinkClicked0导航请求是由点击链接引起的。
QWebEnginePage::NavigationTypeTyped1导航请求是由显式加载的URL引起的。
QWebEnginePage::NavigationTypeFormSubmitted2导航请求是由表单提交引起的。
QWebEnginePage::NavigationTypeBackForward3导航请求是由前后导航操作引起的。
QWebEnginePage::NavigationTypeReload4导航请求是由重新加载操作引起的。
QWebEnginePage::NavigationTypeRedirect(自Qt 5.14起)6导航请求是由内容或服务器控制的重定向引起的。这也包括自动重新加载。
QWebEnginePage::NavigationTypeOther5导航请求是由上述不包括的其他方式触发的。

另见 acceptNavigationRequest

enum QWebEnginePage::PermissionPolicy

此枚举描述了用户可以为数据或设备访问设置的分权策略。

常量描述
QWebEnginePage::PermissionUnknown0不知道用户是否授予或拒绝权限。
QWebEnginePage::PermissionGrantedByUser1用户已授予权限。
QWebEnginePage::PermissionDeniedByUser2用户已拒绝权限。

另见 featurePermissionRequestedfeaturePermissionRequestCanceledsetFeaturePermissionFeature

enum QWebEnginePage::RenderProcessTerminationStatus

此枚举描述了渲染进程退出的状态

常量描述
QWebEnginePage::NormalTerminationStatus0渲染进程正常退出。
QWebEnginePage::AbnormalTerminationStatus1渲染进程以非零退出状态退出。
QWebEnginePage::CrashedTerminationStatus2渲染进程崩溃,例如由于段错误。
QWebEnginePage::KilledTerminationStatus3渲染进程被杀死,例如通过SIGKILL或任务管理器终止。

enum QWebEnginePage::WebAction

此枚举描述了可以在网页上执行的操作类型。

只有当操作适用时,它们才有作用。

可以通过检查由action返回的操作上的isEnabled()来确定操作是否可用。

常量描述
QWebEnginePage::NoWebAction- 1没有触发任何操作。
QWebEnginePage::Back0在已导航的链接历史中后退。
QWebEnginePage::Forward1在已导航的链接历史中前进。
QWebEnginePage::Stop2停止加载当前页面。
QWebEnginePage::Reload3重新加载当前页面。
QWebEnginePage::ReloadAndBypassCache10重新加载当前页面,但不使用任何本地缓存。
QWebEnginePage::Cut4将当前选定的内容剪贴到剪贴板。
QWebEnginePage::Copy5将当前选定的内容复制到剪贴板。
QWebEnginePage::Paste6从剪贴板粘贴内容。
QWebEnginePage::Undo7撤销上一次编辑操作。
QWebEnginePage::Redo8重做上一次编辑操作。
QWebEnginePage::SelectAll9选择所有内容。此操作仅在页面内容聚焦时启用。可以通过JavaScript调用 window.focus() 或启用 FocusOnNavigationEnabled 设置来强制获取自动聚焦。
QWebEnginePage::PasteAndMatchStyle11使用当前样式从剪贴板粘贴内容。
QWebEnginePage::OpenLinkInThisWindow (自 Qt 5.6 开始)12在当前窗口中打开当前链接。
QWebEnginePage::OpenLinkInNewWindow (自 Qt 5.6 开始)13在新的窗口中打开当前链接。需要实现 createWindow() 或 newWindowRequested()。
QWebEnginePage::OpenLinkInNewTab (自 Qt 5.6 开始)14在新的标签页中打开当前链接。需要实现 createWindow() 或 newWindowRequested()。
QWebEnginePage::OpenLinkInNewBackgroundTab (自 Qt 5.7 开始)31在新的后台标签页中打开当前链接。需要实现 createWindow() 或 newWindowRequested()。
QWebEnginePage::CopyLinkToClipboard (自 Qt 5.6 开始)15将当前链接复制到剪贴板。
QWebEnginePage::CopyImageToClipboard (自 Qt 5.6 开始)17复制点击的图片到剪贴板。
QWebEnginePage::CopyImageUrlToClipboard (自 Qt 5.6 开始)18将点击的图片的URL复制到剪贴板。
QWebEnginePage::CopyMediaUrlToClipboard (自 Qt 5.6 开始)20复制悬停音频或视频的URL到剪贴板。
QWebEnginePage::ToggleMediaControls (自 Qt 5.6 开始)21在显示和隐藏悬停的音频或视频元素的控制之间切换。
QWebEnginePage::ToggleMediaLoop (自 Qt 5.6 开始)22切换悬停的音频或视频是否在完成后循环。
QWebEnginePage::ToggleMediaPlayPause (自 Qt 5.6 开始)23切换悬停的音频或视频元素的播放/暂停状态。
QWebEnginePage::ToggleMediaMute (自 Qt 5.6 开始)24静音或取消静音悬停的音频或视频元素。
QWebEnginePage::DownloadLinkToDisk (自 Qt 5.6 开始)16将当前链接下载到磁盘。需要一个用于 downloadRequested 的槽。
QWebEnginePage::DownloadImageToDisk (自 Qt 5.6 开始)19将高亮的图片下载到磁盘。需要一个用于 downloadRequested 的槽。
QWebEnginePage::DownloadMediaToDisk (自 Qt 5.6 开始)25将悬停的音频或视频下载到磁盘。需要一个用于 downloadRequested 的槽。
QWebEnginePage::InspectElement (自 Qt 5.6 开始)26触发任何附加的Web Inspector以检查高亮元素。
QWebEnginePage::ExitFullScreen (自 Qt 5.6 开始)27退出全屏模式。
QWebEnginePage::RequestClose (自 Qt 5.6 开始)28请求关闭网页。如果已定义,则运行 window.onbeforeunload 处理器,用户可以确认或拒绝关闭页面。如果关闭请求被确认,则 windowCloseRequested 被发出。
QWebEnginePage::Unselect (自 Qt 5.7 开始)29清除当前选择。
QWebEnginePage::SavePage (自 Qt 5.7 开始)30将当前页面保存到磁盘。MHTML 是用于在磁盘上存储网页的默认格式。需要一个用于 downloadRequested 的槽。
QWebEnginePage::ViewSource (自 Qt 5.8 开始)32在新标签页中显示当前页面的源代码。需要一个用于 createWindow() 或 newWindowRequested 的实现。
QWebEnginePage::ToggleBold (自 Qt 5.10 开始)33切换选中内容或光标位置的加粗。需要 contenteditable="true"
QWebEnginePage::ToggleItalic (自 Qt 5.10 开始)34切换选中内容或光标位置的斜体。需要 contenteditable="true"
QWebEnginePage::ToggleUnderline (自 Qt 5.10 开始)35切换选中内容或光标位置的下划线。需要 contenteditable="true"
QWebEnginePage::ToggleStrikethrough (自 Qt 5.10 开始)36切换选定的文本或光标位置的删除线。需要 contenteditable="true" 属性。
QWebEnginePage::AlignLeft (自 Qt 5.10)37将选定文本或光标所在的行居左。需要 contenteditable="true" 属性。
QWebEnginePage::AlignCenter (自 Qt 5.10)38将选定文本或光标所在的行居中。需要 contenteditable="true" 属性。
QWebEnginePage::AlignRight (自 Qt 5.10)39将选定文本或光标所在的行居右。需要 contenteditable="true" 属性。
QWebEnginePage::AlignJustified (自 Qt 5.10)40拉伸选定文本或光标所在的行,使每行的宽度相等。需要 contenteditable="true" 属性。
QWebEnginePage::Indent (自 Qt 5.10)41将选定文本或光标所在的行缩进。需要 contenteditable="true" 属性。
QWebEnginePage::Outdent (自 Qt 5.10)42将选定文本或光标所在的行取消缩进。需要 contenteditable="true" 属性。
QWebEnginePage::InsertOrderedList (自 Qt 5.10)43在当前光标位置插入有序列表,删除当前选择。需要 contenteditable="true" 属性。
QWebEnginePage::InsertUnorderedList (自 Qt 5.10)44在当前光标位置插入无序列表,删除当前选择。需要 contenteditable="true" 属性。
QWebEnginePage::ChangeTextDirectionLTR (自 Qt 6.6)45在聚焦的输入元素中更改文本方向为从左到右。
QWebEnginePage::ChangeTextDirectionRTL (自 Qt 6.6)46在聚焦的输入元素中更改文本方向为从右到左。

枚举 QWebEnginePage::WebWindowType

此枚举描述了可以由 createWindow() 函数创建的窗口类型。

常量描述
QWebEnginePage::WebBrowserWindow0完整的网络浏览器窗口。
QWebEnginePage::WebBrowserTab1网络浏览器标签。
QWebEnginePage::WebDialog2没有装饰的窗口。
QWebEnginePage::WebBrowserBackgroundTab (自 Qt 5.7)3没有隐藏当前可见的 WebEngineView 的网络浏览器标签。

属性文档

audioMuted : bool

此属性表示当前页面的音频是否静音。

默认值为 false

访问函数

boolisAudioMuted() const
voidsetAudioMuted(bool muted)

通知信号

voidaudioMutedChanged(bool muted)

另请参阅recentlyAudible

backgroundColor : QColor

此属性表示页面文档体的背景颜色。

您可以设置背景颜色为 Qt::transparent 或半透明颜色,以便可以看到文档,或者您可以将它设置为您混合应用中的网络内容,以避免在加载过程中出现可能的白色闪烁。

默认值为白色。

访问函数

QColorbackgroundColor() const
voidsetBackgroundColor(const QColor &color)

[只读] contentsSize : const QSizeF

此属性表示页面内容的尺寸。

访问函数

QSizeFcontentsSize() const

通知信号

voidcontentsSizeChanged(const QSizeF &size)

[只读] hasSelection : const bool

此属性表示此页面是否包含所选内容。

访问函数

boolhasSelection() const

另请参阅selectionChanged

[只读] icon : const QIcon

此属性保存当前查看的页面对应的图标。

默认情况下,此属性包含一个空图标。如果禁用了触摸图标(请参阅 QWebEngineSettings::TouchIconsEnabled),则提供两个大小的favicon(16x16像素和32x32像素),封装在 QIcon 中。否则,提供单图标,尺寸为最大可用尺寸。

访问函数

QIconicon() const

通知信号

voidiconChanged(const QIcon &icon)

另请参阅 iconChangediconUrliconUrlChangedQWebEngineSettings::TouchIconsEnabled

[只读] iconUrl : const QUrl

此属性保存当前查看的页面对应图标的URL。

默认情况下,此属性包含一个空URL。

访问函数

QUrliconUrl() const

通知信号

voidiconUrlChanged(const QUrl &url)

另请参阅 iconUrlChangediconiconChanged

lifecycleState : LifecycleState

此属性保存页面的当前生命周期状态。

设置器强制执行以下限制

  • 一个 visible 页面必须保留在 Active 状态。
  • 如果页面由 devToolsPage 检查,则两个页面都必须保留在 Active 状态。
  • 处于 Discarded 状态的页面只能转换为 Active 状态。这将导致页面重新加载。

这是生命周期状态的唯一硬限制,但请参阅 recommendedState 了解推荐的软限制。

访问函数

QWebEnginePage::LifecycleStatelifecycleState() const
voidsetLifecycleState(QWebEnginePage::LifecycleState state)

通知信号

voidlifecycleStateChanged(QWebEnginePage::LifecycleState state)

另请参阅 recommendedStatePage Lifecycle APIWebEngine Lifecycle Example

[只读(自6.2起)] loading : const bool

此属性表示页面是否正在加载。

此属性从Qt 6.2版引入。

访问函数

boolisLoading() const

通知信号

voidloadingChanged(const QWebEngineLoadingInfo &loadingInfo)

另请参阅 QWebEngineLoadingInfoloadStartedloadFinished

[只读] recentlyAudible : const bool

此属性保存当前页面的 可听状态,即是否最近播放了音频。

默认值为 false

访问函数

boolrecentlyAudible() const

通知信号

voidrecentlyAudibleChanged(bool recentlyAudible)

另请参阅 audioMuted.

[只读] recommendedState : const LifecycleState

此属性存储页面生命周期状态的推荐限制。

将生命周期状态设置为比推荐状态更低的资源使用状态可能会导致副作用,例如停止后台音频播放或丢失HTML表单输入。但是将生命周期状态设置到更高的资源状态是完全安全的。

访问函数

QWebEnginePage::LifecycleStaterecommendedState() const

通知信号

voidrecommendedStateChanged(QWebEnginePage::LifecycleState state)

另见 lifecycleState页面生命周期APIWebEngine生命周期示例

[只读] renderProcessPid : const qint64

此属性存储分配给当前页面主框架的渲染进程的进程ID(PID)。

如果尚未提供渲染进程,则返回0

访问函数

qint64renderProcessPid() const

通知信号

voidrenderProcessPidChanged(qint64 pid)

[只读] requestedUrl : const QUrl

该属性存储当前正在查看的页面对原始请求进行加载的URL。

注意:该URL可能不同于由url()返回的URL,该URL是DNS解析或重定向后的实际URL。

访问函数

QUrlrequestedUrl() const

另请参阅 url()和setUrl().

[只读] scrollPosition : const QPointF

此属性存储页面内容的滚动位置。

访问函数

QPointFscrollPosition() const

通知信号

voidscrollPositionChanged(const QPointF &position)

[只读] selectedText : const QString

此属性存储当前选中的文本。

默认情况下,此属性包含一个空字符串。

访问函数

QStringselectedText() const

另请参阅selectionChanged

[只读] title : const QString

此属性存储页面标题,如HTML的<title>元素定义。

如果页面没有<title>元素,则使用URL代替。对于file:// URLs,只使用文件名而不是完整路径。

默认情况下,在加载任何内容之前,此属性包含一个空字符串。

访问函数

QStringtitle() const

另请参阅 titleChanged().

url : QUrl

此属性存储当前正在查看的页面的URL。

设置此属性将清除视图并加载URL。

默认情况下,此属性包含一个空、无效的URL。

访问函数

QUrlurl() const
voidsetUrl(const QUrl &url)

通知信号

voidurlChanged(const QUrl &url)

另请参阅urlChanged

visible : bool

此属性表示页面是否在 Page Visibility API 中被考虑为可见。

设置此属性将改变 JavaScript 中的 Document.hiddenDocument.visibilityState 属性,网站可以使用这些属性在其对用户不可见时自愿减少其资源使用。

如果页面连接到一个 视图,则此属性将由视图根据其自己的可见性自动管理。

访问函数

boolisVisible() const
voidsetVisible(bool visible)

通知信号

voidvisibleChanged(bool visible)

另请参阅lifecycleState

zoomFactor : qreal

此属性表示页面内容的缩放因子。

有效值范围从 0.255.0。默认因子为 1.0

访问函数

qrealzoomFactor() const
voidsetZoomFactor(qreal factor)

成员函数文档

void QWebEnginePage::runJavaScript(const QString &scriptSource, const std::function<void (const QVariant &)> &resultCallback)

void QWebEnginePage::runJavaScript(const QString &scriptSource, quint32 worldId = 0, const std::function<void (const QVariant &)> &resultCallback = {})

运行 scriptSource 中的 JavaScript 代码,而不检查页面 DOM 是否已构建。如果需要更细粒度的脚本执行控制,请考虑使用 scripts()。

为了避免与其他在页面上执行的脚本冲突,指定执行脚本的世界是通过 worldId 来实现的。世界 ID 值与 QWebEngineScript::ScriptWorldId 提供的值相同,范围在 0256 之间。如果您省略 world ID,脚本将在 MainWorld 中运行。

脚本执行完成后,将调用 resultCallback 并传入最后一个执行语句的结果。 resultCallback 可以是任何函数指针、仿函数或 lambda 表达式,并期望接受一个 QVariant 参数。例如

page.runJavaScript("document.title", [](const QVariant &v) { qDebug() << v.toString(); });

从 JavaScript 返回的结果值只能是纯数据。支持的数据类型包括所有 JSON 数据类型以及例如 DateArrayBuffer。不支持的数据类型包括例如 FunctionPromise

警告:请在回调函数中不要执行耗时的操作,因为这可能会阻止网页引擎页面的渲染。

警告:我们保证总是调用回调 (resultCallback),但它可能在页面销毁期间完成。当 QWebEnginePage 被删除时,回调将带有一个无效的值,并且在其中使用相应的 QWebEnginePageQWebEngineView 实例是不安全的。

另请参阅 scripts(),QWebEngineScript::ScriptWorldId,以及脚本注入

[显式] QWebEnginePage::QWebEnginePage(QObject *parent = nullptr)

使用指定的父对象parent构造一个空的QWebEnginePage。

QWebEnginePage::QWebEnginePage(QWebEngineProfile *profile, QObject *parent = nullptr)

在指定的Web引擎配置文件profile中创建一个空的Web页面,并使用指定的父对象parent

如果配置文件不是默认配置,调用者必须确保配置文件与页面对象一样长生命。

[虚函数] QWebEnginePage::~QWebEnginePage()

销毁网页。

[虚保护] bool QWebEnginePage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame)

当收到请求使用指定的导航类型type导航到指定的url时调用此函数。如果isMainFrame指示请求对应于主框架或子框架,则函数返回true,接受导航请求并加载url。默认实现接受所有导航请求。

可以覆盖此函数将导航请求委派给Qt应用程序,而不是由HTML处理器引擎处理,从而处理导航请求。当HTML文档用作用户界面的一部分,而不是显示外部数据时(例如在显示结果列表时),需要这样做。

注意:该函数在相同页面上的片段导航时不会被调用。例如,通过在页面内部点击指向'#fragment'的链接进行此类导航。它不会触发对不同文档的加载,即使它更改页面的URL并添加历史记录条目。它只作为在页面内滚动的快捷方式。因此,不会期望对此类导航类型进行委派。

注意:在请求被接受或拒绝之前,启动加载过程并发射loadStarted()信号。因此,即使委派请求,也期望返回falseloadFinished()信号。

注意:当使用带有相对链接的setHtmlsetContent时,确保指定一个基本URL,否则链接将被视为无效,不会发出导航请求。

QWebEngineUrlRequestInterceptor类提供了进一步拦截和操纵请求的选项。

QAction *QWebEnginePage::action(QWebEnginePage::WebAction action) const

返回指定WebAction action的QAction。

操作由QWebEnginePage拥有,但您可以通过更改其属性来自定义外观。

QWebEnginePage::action(WebAction action) 方法没有默认样式的图标。请使用 QWebEngineView::pageAction() 来获取带有默认样式图标的操作。

QWebEnginePage 还负责实现操作,以便在页面上触发相应的操作。

另外参见triggerAction

[信号] void QWebEnginePage::audioMutedChanged(bool muted)

当页面 muted 状态发生变化时,会发射此信号。

注意:这不同于特定 HTML5 音频或视频元素的静音。

注意:这是属性 audioMuted 的通知信号。

[信号] void QWebEnginePage::authenticationRequired(const QUrl &requestUrl, QAuthenticator *authenticator)

当访问 requestUrl 需要身份验证时,会发射此信号。应该使用 authenticator 来传递连接的用户名和密码。

[信号] void QWebEnginePage::certificateError(const QWebEngineCertificateError &certificateError)

在加载给定的请求期间,当发出无效证书错误时,会发射此信号。

certificateError 参数包含有关证书和错误详细信息的信息,并且还提供了忽略错误并完成请求或停止加载请求的方式。

另外参见QWebEngineCertificateError

[虚保护] QStringList QWebEnginePage::chooseFiles(QWebEnginePage::FileSelectionMode mode, const QStringList &oldFiles, const QStringList &acceptedMimeTypes)

在网页内容请求文件名时调用此函数,例如,当用户在 HTML 表单中点击文件上传按钮时。

mode 表示是否期望返回一个或多个文件。

可以在 oldFiles 的第一个条目中提供建议的文件名。默认实现忽略 acceptedMimeTypes,但可能由覆盖使用。

[虚保护] QWebEnginePage *QWebEnginePage::createWindow(QWebEnginePage::WebWindowType type)

此函数用于创建指定 type 的新窗口。例如,当 JavaScript 程序请求在新的窗口中打开文档时。

如果可以创建新窗口,则返回新窗口的 QWebEnginePage;否则返回 null 指针。

如果与网页关联的视图是 QWebEngineView 对象,则默认实现将请求转发到 QWebEngineView::createWindow();否则返回 null 指针。

如果此调用未实现或未返回新页面,则会发出newWindowRequested() 来处理请求。

注意:当窗口创建是由JavaScript触发时,除了重新实现此方法外,应用程序还必须将 QWebEngineSettings::JavascriptCanOpenWindows 设置为 true,以便调用该方法。

另请参阅 QWebEngineView::createWindow() 和 newWindowRequested().

[since 6.6] QString QWebEnginePage::devToolsId() const

返回与此页面关联的开发者工具主机ID。

如果启用了远程调试(请参阅Qt WebEngine开发者工具),则可以使用ID构建连接到开发者工具WebSocket的URL:ws://localhost:<debugggin-port>/devtools/page/<id>)。可以使用WebSocket通过DevTools协议与页面进行交互。

此功能是在Qt 6.6中引入的。

QWebEnginePage *QWebEnginePage::devToolsPage() const

如果有的话,返回托管此页面开发者工具的页面。

如果没有设置开发者工具页面,则返回 nullptr

另请参阅 setDevToolsPage() 和 inspectedPage().

void QWebEnginePage::download(const QUrl &url, const QString &filename = QString())

从由 url 指定的位置下载资源到本地文件。

如果提供了 filename,则用作建议的文件名。如果是相对路径的,则使用给定的名称保存到标准下载位置。如果为空或空 QString,则使用默认的文件名。

下载开始后,会发出 QWebEngineProfile::downloadRequested()。

[重写虚函数] bool QWebEnginePage::event(QEvent *e)

重写了: QObject::event(QEvent *e).

[信号] void QWebEnginePage::featurePermissionRequestCanceled(const QUrl &securityOrigin, QWebEnginePage::Feature feature)

当标识为 securityOrigin 的网站取消之前发出的用于使用 feature 的请求时,会发出此信号。

另请参阅 featurePermissionRequested() 和 setFeaturePermission().

[信号] void QWebEnginePage::featurePermissionRequested(const QUrl &securityOrigin, QWebEnginePage::Feature feature)

当标识为 securityOrigin 的网站请求使用由 feature 标识的资源或设备时,会发出此信号。

另请参阅 featurePermissionRequestCanceled() 和 setFeaturePermission().

[signal, since 6.4] void QWebEnginePage::fileSystemAccessRequested(QWebEngineFileSystemAccessRequest request)

当网页请求访问本地文件或目录时,会发出此信号。

可以使用请求对象 request 来接受或拒绝请求。

此函数自 Qt 6.4 开始引入。

void QWebEnginePage::findText(const QString &subString, QWebEnginePage::FindFlags options = {}, const std::function<void (const QWebEngineFindTextResult &)> &resultCallback = std::function<void(const QWebEngineFindTextResult &)>())

使用给定的 options 在页面中查找指定的字符串 subString。当字符串搜索完成时,会发出 findTextFinished() 信号。

为了清除搜索高亮显示,只需传递一个空字符串。

resultCallback 必须接受一个 QWebEngineFindTextResult 参数。

警告:我们保证总是调用回调 (resultCallback),但它可能在页面销毁期间完成。当 QWebEnginePage 被删除时,回调将带有一个无效的值,并且在其中使用相应的 QWebEnginePageQWebEngineView 实例是不安全的。

例如

    m_view->page()->findText(QStringLiteral("Qt"), QWebEnginePage::FindFlags(), [this](const QWebEngineFindTextResult &result) {
        if (result.numberOfMatches() == 0) QMessageBox::information(m_view, QString(), QStringLiteral("No occurrences found"));
    });

另请参阅findTextFinished

[signal] void QWebEnginePage::findTextFinished(const QWebEngineFindTextResult &result)

当页面上的字符串搜索完成时,会发出此信号。result 是字符串搜索的结果。

另请参阅findText

[signal] void QWebEnginePage::fullScreenRequested(QWebEngineFullScreenRequest fullScreenRequest)

当网页请求进入全屏模式时,通常是一个视频元素,会发出此信号。

可以使用请求对象 fullScreenRequest 来接受或拒绝请求。

如果请求被接受,请求全屏的元素将填满视口,但使视图全屏或移动页面到全屏视图取决于应用程序。

另请参阅QWebEngineSettings::FullScreenSupportEnabled

[signal] void QWebEnginePage::geometryChangeRequested(const QRect &geom)

当文档想要将页面位置和大小更改为 geom 时,会发出此信号。这可能会通过 JavaScript 发生。

注意:setGeometry() 期望一个不包括窗口装饰的大小,而 geom 包括它。您需要从 geom 中删除框架边距的大小来正确处理此信号。

window->setGeometry(geom.marginsRemoved(window->frameMargins()));

QWebEngineHistory *QWebEnginePage::history() const

返回指向视图的历史记录导航网页的指针。

[signal] void QWebEnginePage::iconChanged(const QIcon &icon)

当与页面相关联的图标(“favicon”)变更时,将发射此信号。新的图标由icon指定。

注意:属性icon的Notifier信号。

另请参阅:icon(),iconUrl(),以及iconUrlChanged

[signal] void QWebEnginePage::iconUrlChanged(const QUrl &url)

当与页面相关联的图标(“favicon”)的URL变更时,将发射此信号。新的URL由url指定。

注意:属性iconUrl的Notifier信号。

另请参阅:iconUrlicon,以及iconChanged

QWebEnginePage *QWebEnginePage::inspectedPage() const

如果有的话,返回正在检查此页面的页面。

如果没有开发工具页面,返回nullptr

另请参阅:setInspectedPage()和devToolsPage

[虚拟受保护] void QWebEnginePage::javaScriptAlert(const QUrl &securityOrigin, const QString &msg)

每当在securityOrigin关联的帧中运行的JavaScript程序调用alert()函数并传递消息msg时,都会调用此函数。

默认实现使用QMessageBox::information显示消息msg

[虚拟受保护] bool QWebEnginePage::javaScriptConfirm(const QUrl &securityOrigin, const QString &msg)

每当在securityOrigin关联的帧中运行的JavaScript程序调用confirm()函数并传递消息msg时,都会调用此函数。如果用户确认消息,则返回true;否则返回false

onbeforeunload处理程序在离开页面之前请求确认时,也会调用它。

默认实现使用带QMessageBox::OkQMessageBox::Cancel按钮的QMessageBox::information执行查询。

[虚拟受保护] void QWebEnginePage::javaScriptConsoleMessage(QWebEnginePage::JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID)

当JavaScript程序尝试将message输出到网页浏览器的控制台时,将调用此函数。

例如,在评估错误的情况下,源URL可能也包含在sourceID中以及lineNumber中。

等级表示触发消息的事件严重性。也就是说,是由错误还是较轻的事件触发的。

从Qt 5.6开始,默认实现将消息记录在js 日志类别中。

参见控制台日志

[虚保护] bool QWebEnginePage::javaScriptPrompt(const QUrl & securityOrigin, const QString & msg, const QString & defaultValue, QString *result)

每当在关联于securityOrigin的框架中运行的JavaScript程序尝试提示用户输入时,都会调用此函数。程序可以提供一个可选消息msg,以及输入的默认值defaultValue

如果提示被用户取消,则实现应返回false;否则应将结果写入result,并返回true。如果没有取消提示,则实现应返回true,且结果字符串不能为空。

默认实现使用QInputDialog::getText()。

[信号] void QWebEnginePage::linkHovered(const QString & url)

当鼠标悬停在链接上时,将发出此信号。 url包含链接的目标URL。

void QWebEnginePage::load(const QUrl & url)

url加载到该页面。

注意:新URL的视图保持不变,直到到达足够的数据以显示。

参见 setUrl(),setHtmlsetContent

void QWebEnginePage::load(const QWebEngineHttpRequest & request)

发出指定的请求并加载响应。

参见 load(),setUrl(),urlurlChangedQUrl::fromUserInput

[信号] void QWebEnginePage::loadFinished(bool ok)

当页面完成内容加载时,将发出此信号。此信号独立于脚本执行或页面渲染。ok将指示加载是否成功或发生了任何错误。

注意:可以委托导航请求到Qt应用程序,而不是由HTML处理引擎处理,方法是重载acceptNavigationRequest()函数。因为加载过程会在接受或拒绝请求之前启动,并且在发出loadStarted()信号之前,即使委托了请求,也可以期望返回falseloadFinished信号。

参见 loadStarted()和acceptNavigationRequest

[信号] void QWebEnginePage::loadProgress(int progress)

当全局进度状态改变时,会发出此信号。当前值由progress提供,并从0到100缩放,这是QProgressBar的默认范围。它累积来自所有子框架的变化。

[信号] void QWebEnginePage::loadStarted()

当页面开始加载内容时,会发出此信号。

另请参阅 loadFinished() 和 acceptNavigationRequest()。

[信号,自6.2版起] void QWebEnginePage::loadingChanged(const QWebEngineLoadingInfo &loadingInfo)

当加载由loadingInfo指定的页面开始、结束或失败时,会发出此信号。

注意:属性loading的通告信号。

此函数自Qt 6.2版引入。

在调用acceptNavigationRequest时与导航一起发出此信号。它可以用来接受或忽略request。默认是接受。

此函数自Qt 6.2版引入。

另见 acceptNavigationRequest

[信号,自6.2版起] void QWebEnginePage::newWindowRequested(QWebEngineNewWindowRequest &request)

当发出request以在单独的Web引擎窗口中加载页面时,会发出此信号。这可以是由于当前页面通过JavaScript调用window.open显式请求,或者用户在按下Shift、Ctrl或触发在 新窗口中打开页面的内置组合时点击链接。

通过在请求上调用openIn()并使用新页面处理该信号。如果没有处理此信号,请求将失败。

注意:如果首先由createWindow()处理了请求,则不会发出此信号。

此函数自Qt 6.2版引入。

另请参阅 createWindow() 和 QWebEngineNewWindowRequest::openIn()。

[信号] void QWebEnginePage::pdfPrintingFinished(const QString &filePath, bool success)

当将网页打印成PDF文件完成时,会发出此信号。filePath将包含请求创建文件的路径,如果文件创建成功则successtrue,否则为false

另请参阅 printToPdf()。

[信号] void QWebEnginePage::printRequested()

当调用JavaScript方法window.print()或用户按下PDF查看器插件的打印按钮时,会发出此信号。通常,信号处理程序可以直接调用printToPdf()。

另请参阅 printToPdf()。

void QWebEnginePage::printToPdf(const QString &filePath, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges &ranges = {})

将当前页面的内容渲染成PDF文档,并保存到在filePath中指定的位置。生成的PDF文档的页大小和方向采用在layout中指定的值,而打印的页面范围则采用ranges中指定的值,默认为打印所有页面。

此方法向打印网页为PDF发出异步请求,并立即返回。要了解请求的结果,请连接到信号pdfPrintingFinished

注意: 可以使用QWebEnginePage::Stop网页动作来中断此异步操作。

如果提供的文件路径中已存在文件,它将被覆盖。

另请参阅 pdfPrintingFinished

void QWebEnginePage::printToPdf(const std::function<void (const QByteArray &)> &resultCallback, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges &ranges = {})

将当前页面的内容渲染成PDF文档,并将包含PDF数据的字节数组作为参数返回给resultCallback。生成的PDF文档的页大小和方向采用在layout中指定的值,而打印的页面范围则采用ranges中指定的值,默认为打印所有页面。

resultCallback必须接受一个对QByteArray的常量引用作为参数。如果打印成功,则此字节数组将包含PDF数据,否则,字节数组将为空。

注意: 可以使用QWebEnginePage::Stop网页动作来中断此操作。

警告:我们保证总是调用回调 (resultCallback),但它可能在页面销毁期间完成。当 QWebEnginePage 被删除时,回调将带有一个无效的值,并且在其中使用相应的 QWebEnginePageQWebEngineView 实例是不安全的。

QWebEngineProfile *QWebEnginePage::profile() const

返回页面属于的网页引擎配置文件。

[信号] void QWebEnginePage::proxyAuthenticationRequired(const QUrl &requestUrl, QAuthenticator *authenticator, const QString &proxyHost)

当通过proxyHost访问requestUrl需要代理认证时,会发出此信号。authenticator用于传递连接的用户名和密码。

[信号] void QWebEnginePage::recentlyAudibleChanged(bool recentlyAudible)

当页面的可听状态recentlyAudible由于音频播放或停止而改变时,会发出此信号。

注意: 在调用setAudioMuted()方法时也会发出此信号。

注意: 这是属性recentlyAudible的通知信号。

[信号] void QWebEnginePage::registerProtocolHandlerRequested(QWebEngineRegisterProtocolHandlerRequest request)

当网页尝试使用registerProtocolHandler API注册自定义协议时,将发出此信号。

请求对象request可以用来接受或拒绝请求

void WebView::handleRegisterProtocolHandlerRequested(
        QWebEngineRegisterProtocolHandlerRequest request)
{
    auto answer = QMessageBox::question(window(), tr("Permission Request"),
                                        tr("Allow %1 to open all %2 links?")
                                                .arg(request.origin().host())
                                                .arg(request.scheme()));
    if (answer == QMessageBox::Yes)
        request.accept();
    else
        request.reject();
}

[signal] void QWebEnginePage::renderProcessPidChanged(qint64 pid)

当底层渲染进程PIDpid变化时,将发出此信号。

注意:属性renderProcessPid通知信号

[signal] void QWebEnginePage::renderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus terminationStatus, int exitCode)

当渲染进程以非零退出状态终止时,将发出此信号。terminationStatus是进程的终止状态,而exitCode是以此状态终止进程的状态码。

void QWebEnginePage::replaceMisspelledWord(const QString &replacement)

replacement替换当前拼错的单词。

当前拼错的单词可以在QWebEngineContextMenuRequest::misspelledWord()中找到,建议的替换可以在QWebEngineContextMenuRequest::spellCheckerSuggestions()中找到。

void QWebEnginePage::save(const QString &filePath, QWebEngineDownloadRequest::SavePageFormat format = QWebEngineDownloadRequest::MimeHtmlSaveFormat) const

将当前加载的网页保存到磁盘。

网页将被保存在指定的filePath中,以指定的format格式保存。

这是一个快捷方式,用于执行以下操作

  • 触发“保存网页”动作。
  • 接受下一个下载项并设置指定的文件路径和保存格式。

此函数对网页发出异步下载请求,并立即返回。

另请参阅QWebEngineDownloadRequest::SavePageFormat

QWebEngineScriptCollection &QWebEnginePage::scripts()

返回注入到页面中的脚本集合。

此外,页面可能还会执行通过QWebEngineProfile::scripts()添加的脚本。

另请参阅QWebEngineScriptCollectionQWebEngineScript脚本注入

[signal] void QWebEnginePage::selectClientCertificate(QWebEngineClientCertificateSelection clientCertificateSelection)

当一个网站请求SSL客户端证书,并且在系统客户端证书存储中找到了一个或多个证书时,将发出此信号。

处理此信号是异步的,加载将等待直到选择了一个证书,或者最后一个clientCertificateSelection副本被销毁。

如果没有处理此信号,则将自动销毁clientCertificateSelection,并且加载将继续而不带客户端证书。

另请参阅QWebEngineClientCertificateSelection

[信号] void QWebEnginePage::selectionChanged()

每次选择变化时,无论是交互式还是程序性地,都会发出此信号。例如,通过调用triggerAction()并传递一个选择操作。

注意:使用鼠标通过左键点击和拖动选择文本时,信号会在每个新字符被选择时触发,而不是在释放左鼠标按钮时。

另请参阅:selectedText()。

void QWebEnginePage::setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl())

将网页的内容设置为data。如果mimeType参数为空,则假定内容为text/plain,charset=US-ASCII

在内容中引用的外部对象位于相对于baseUrl的位置。对于有相对URL的外部对象,需要加载它们,baseUrl不能为空。

data将被立即加载;外部对象将异步加载。

注意:此方法不会影响页面的会话或全局历史记录。

警告:在通过IPC将内容发送到渲染器之前,内容将被百分号编码。这可能会增加其大小。百分号编码内容的最大大小为2兆字节减去6字节加上MIME类型字符串的长度。

另请参阅:toHtml() 和 setHtml()。

void QWebEnginePage::setDevToolsPage(QWebEnginePage *devToolsPage)

devToolsPage绑定为此页的开发者工具。触发devToolsPage导航到包含开发者工具的内部URL。

这等同于在devToolsPage上调用setInspectedPage()并将this作为参数。

另请参阅:devToolsPage() 和 setInspectedPage()。

void QWebEnginePage::setFeaturePermission(const QUrl &securityOrigin, QWebEnginePage::Feature feature, QWebEnginePage::PermissionPolicy policy)

将标识为securityOrigin的网站使用feature的权限设置为policy

注意:此方法主要在发出featurePermissionRequested()信号之后调用,以触发特征权限响应。它也可以在请求发出之前调用,但只会为被动检查设置授权权限,主要是对于Notification API,在明确请求之前可以检查权限是否已经授予。

另请参阅:featurePermissionRequested() 和 featurePermissionRequestCanceled()。

void QWebEnginePage::setHtml(const QString &html, const QUrl &baseUrl = QUrl())

将此页面的内容设置为htmlbaseUrl是可选的,用于解析文档中的相对URL,例如引用的图像或样式表。

HTML代码会立即加载;外部对象会异步加载。

如果HTML中的脚本运行时间超过默认脚本超时时间(当前为10秒),例如被模态JavaScript提示对话框阻塞,该方法将在超时后尽快返回,并且在超时后的任何后续HTML将异步加载。

使用此方法时,网页引擎假定外部资源,例如JavaScript程序或样式表,是UTF-8编码的,除非另行指定。例如,可以通过HTML脚本的charset属性指定外部脚本的编码。也可以由网页服务器指定编码。

这是一个等同于setContent(html, "text/html", baseUrl)的便利函数。

注意:此方法不会影响页面的会话或全局历史记录。

警告:此函数仅对HTML有效,对于其他MIME类型(如XHTML和SVG),应使用setContent()。

警告:在通过IPC发送到渲染器之前,内容将被百分号编码。这可能会增加其大小。百分号编码内容的最大大小为2兆字节减去30字节。

另请参阅:toHtml(),setContent()和load()。

void QWebEnginePage::setInspectedPage(QWebEnginePage *page)

导航此页面到page的内部URL,即开发者工具。

这与在page上调用setDevToolsPage()并将this作为参数相同。

另请参阅:inspectedPage()和setDevToolsPage()。

void QWebEnginePage::setUrlRequestInterceptor(QWebEngineUrlRequestInterceptor *interceptor)

将请求拦截器interceptor注册为拦截URL请求。

页面不会拥有此指针。此拦截器在配置文件上的任何拦截器之后被调用,并且与配置文件拦截器不同,只有来自此页面的URL请求被拦截。如果原始请求已被配置文件拦截器阻止或重定向,则不会被此拦截。

要取消设置请求拦截器,设置nullptr

另请参阅:QWebEngineUrlRequestInfoQWebEngineProfile::setUrlRequestInterceptor

void QWebEnginePage::setWebChannel(QWebChannel *channel, quint32 worldId = 0)

将此页面使用的Web通道实例设置为channel,并使用Chromium IPC消息将其连接到网引擎的传输。传输在JavaScript世界中以qt.webChannelTransport公开,当使用Qt WebChannel JavaScript API时,应该使用它。

注意:页面不会拥有通道对象。

注意:每个页面只能安装一个Web通道,即使在不同JavaScript世界中设置一个,也会卸载任何已安装的Web通道。

另请参阅:webChannel()和QWebEngineScript::ScriptWorldId

返回指向页面设置对象的指针。

返回页面设置对象的指针。

[信号] void QWebEnginePage::titleChanged(const QString &title)

每当页面标题更改时都会发出此信号。新标题由 title 字符串指定。

参见 title()。

void QWebEnginePage::toHtml(const std::function<void (const QString &)> &resultCallback) const

异步方法,用于以HTML形式检索页面内容,包含在HTML和BODY标签中。成功完成时,使用页面内容调用 resultCallback

注意: resultCallback 可以是函数指针、函数对象或lambda表达式,并应传递一个 QString 参数。

警告:我们保证总是调用回调 (resultCallback),但它可能在页面销毁期间完成。当 QWebEnginePage 被删除时,回调将带有一个无效的值,并且在其中使用相应的 QWebEnginePageQWebEngineView 实例是不安全的。

参见 setHtml() 和 toPlainText

void QWebEnginePage::toPlainText(const std::function<void (const QString &)> &resultCallback) const

异步方法,用于获取转换为纯文本的页面内容,完全去除所有HTML格式。成功完成时,使用页面内容调用 resultCallback

注意: resultCallback 可以是函数指针、函数对象或lambda表达式,并应传递一个 QString 参数。

警告:我们保证总是调用回调 (resultCallback),但它可能在页面销毁期间完成。当 QWebEnginePage 被删除时,回调将带有一个无效的值,并且在其中使用相应的 QWebEnginePageQWebEngineView 实例是不安全的。

参见 toHtml

[虚函数] void QWebEnginePage::triggerAction(QWebEnginePage::WebAction action, bool checked = false)

可以通过调用此函数来触发指定的 action。如果用户通过上下文菜单等触发操作,Qt WebEngine 也会调用此函数。

如果 action 是可切换的操作,则 checked 指定该操作是否被切换。

参见 action

[信号] void QWebEnginePage::urlChanged(const QUrl &url)

当收到页面标题时,发出此信号,包含页面URL。新的URL由 url 指定。

注意: 属性 url 的通知信号。

参见 url

[信号, 自6.7以来] void QWebEnginePage::webAuthUxRequested(QWebEngineWebAuthUxRequest *request)

当WebAuth验证器在认证过程中需要用户交互时发出此信号。这些请求通过向用户显示对话框来处理。

request 包含完成WebAuth UX请求所需的信息和API。

此功能自Qt 6.7引入。

参见 QWebEngineWebAuthUxRequest

QWebChannel *QWebEnginePage::webChannel() const

返回该页面使用的网络通道实例的指针,如果没有设置则返回空指针。此通道自动使用内部的Chromium IPC传输机制,在页面JavaScript上下文中暴露为 qt.webChannelTransport

另请参阅setWebChannel

[信号] void QWebEnginePage::windowCloseRequested()

每当页面请求关闭浏览器窗口时,都会发出此信号,例如通过JavaScript的window.close()调用。

另请参阅RequestClose

© 2024 Qt公司。本文档的Documentation contributions是各自所有者的版权。本提供的文档是根据自由软件基金会发布的<="" a="" href="http://www.gnu.org/licenses/fdl.html"="">GNU自由文档许可版本1.3条款许可的。Qt及其相关商标是芬兰的Qt公司及其在全球的商标。所有其他商标均为其各自所有者的财产。