QWebEnginePage 类

QWebEnginePage 类提供用于查看和编辑 Web 文档的对象。 更多...

头: #include <QWebEnginePage>
CMake: find_package(Qt6 COMPONENTS WebEngineCore REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmake: QT += webenginecore
Since: Qt 5.4
继承: QObject

公共类型

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

特性

公共函数

  QWebEnginePage (QWebEngineProfile * profile , QObject * parent = nullptr)
  QWebEnginePage (QObject * parent = nullptr)
virtual ~QWebEnginePage ()
QAction * action (QWebEnginePage::WebAction action ) const
QColor backgroundColor () const
QSizeF contentsSize () const
QWebEnginePage * devToolsPage () const
void download (const QUrl & url , const QString & filename = QString())
void findText (const QString & subString , QWebEnginePage::FindFlags options = {}, const std::function<void (const QWebEngineFindTextResult &)> & resultCallback = ...)
bool hasSelection () const
QWebEngineHistory * history () const
QIcon icon () const
QUrl iconUrl () const
QWebEnginePage * inspectedPage () const
bool isAudioMuted () const
bool isLoading () const
bool isVisible () const
QWebEnginePage::LifecycleState lifecycleState () const
void load (const QUrl & url )
void load (const QWebEngineHttpRequest & request )
void printToPdf (const QString & filePath , const QPageLayout & layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges & ranges = {})
void printToPdf (const std::function<void (const QByteArray &)> & resultCallback , const QPageLayout & layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges & ranges = {})
QWebEngineProfile * profile () const
bool recentlyAudible () const
QWebEnginePage::LifecycleState recommendedState () const
qint64 renderProcessPid () const
void replaceMisspelledWord (const QString & replacement )
QUrl requestedUrl () const
void runJavaScript (const QString & scriptSource , const std::function<void (const QVariant &)> & resultCallback )
void runJavaScript (const QString & scriptSource , quint32 worldId = 0, const std::function<void (const QVariant &)> & resultCallback = {})
void save (const QString & filePath , QWebEngineDownloadRequest::SavePageFormat format = QWebEngineDownloadRequest::MimeHtmlSaveFormat) const
QWebEngineScriptCollection & scripts ()
QPointF scrollPosition () const
QString selectedText () const
void setAudioMuted (bool muted )
void setBackgroundColor (const QColor & color )
void setContent (const QByteArray & data , const QString & mimeType = QString(), const QUrl & baseUrl = QUrl())
void setDevToolsPage (QWebEnginePage * devToolsPage )
void setFeaturePermission (const QUrl & securityOrigin , QWebEnginePage::Feature feature , QWebEnginePage::PermissionPolicy policy )
void setHtml (const QString & html , const QUrl & baseUrl = QUrl())
void setInspectedPage (QWebEnginePage * page )
void setLifecycleState (QWebEnginePage::LifecycleState state )
void setUrl (const QUrl & url )
void setUrlRequestInterceptor (QWebEngineUrlRequestInterceptor * interceptor )
void setVisible (bool visible )
void setWebChannel (QWebChannel * channel , quint32 worldId = 0)
void setZoomFactor (qreal factor )
QWebEngineSettings * settings () const
QString title () const
void toHtml (const std::function<void (const QString &)> & resultCallback ) const
void toPlainText (const std::function<void (const QString &)> & resultCallback ) const
virtual void triggerAction (QWebEnginePage::WebAction action , bool checked = false)
QUrl url () const
QWebChannel * webChannel () const
qreal zoomFactor () const

重实现公共函数

virtual bool event (QEvent * e ) override

信号

void audioMutedChanged (bool muted )
void authenticationRequired (const QUrl & requestUrl , QAuthenticator * authenticator )
void certificateError (const QWebEngineCertificateError & certificateError )
void contentsSizeChanged (const QSizeF & size )
void featurePermissionRequestCanceled (const QUrl & securityOrigin , QWebEnginePage::Feature feature )
void featurePermissionRequested (const QUrl & securityOrigin , QWebEnginePage::Feature feature )
void findTextFinished (const QWebEngineFindTextResult & result )
void fullScreenRequested (QWebEngineFullScreenRequest fullScreenRequest )
void geometryChangeRequested (const QRect & geom )
void iconChanged (const QIcon & icon )
void iconUrlChanged (const QUrl & url )
void lifecycleStateChanged (QWebEnginePage::LifecycleState state )
void linkHovered (const QString & url )
void loadFinished (bool ok )
void loadProgress (int progress )
void loadStarted ()
void loadingChanged (const QWebEngineLoadingInfo & loadingInfo )
void navigationRequested (QWebEngineNavigationRequest & request )
void newWindowRequested (QWebEngineNewWindowRequest & request )
void pdfPrintingFinished (const QString & filePath , bool success )
void proxyAuthenticationRequired (const QUrl & requestUrl , QAuthenticator * authenticator , const QString & proxyHost )
void quotaRequested (QWebEngineQuotaRequest quotaRequest )
void recentlyAudibleChanged (bool recentlyAudible )
void recommendedStateChanged (QWebEnginePage::LifecycleState state )
void registerProtocolHandlerRequested (QWebEngineRegisterProtocolHandlerRequest request )
void renderProcessPidChanged (qint64 pid )
void renderProcessTerminated (QWebEnginePage::RenderProcessTerminationStatus terminationStatus , int exitCode )
void scrollPositionChanged (const QPointF & position )
void selectClientCertificate (QWebEngineClientCertificateSelection clientCertificateSelection )
void selectionChanged ()
void titleChanged (const QString & title )
void urlChanged (const QUrl & url )
void visibleChanged (bool visible )
void windowCloseRequested ()

保护函数

virtual bool acceptNavigationRequest (const QUrl & url , QWebEnginePage::NavigationType type , bool isMainFrame )
virtual QStringList chooseFiles (QWebEnginePage::FileSelectionMode mode , const QStringList & oldFiles , const QStringList & acceptedMimeTypes )
virtual QWebEnginePage * createWindow (QWebEnginePage::WebWindowType type )
virtual void javaScriptAlert (const QUrl & securityOrigin , const QString & msg )
virtual bool javaScriptConfirm (const QUrl & securityOrigin , const QString & msg )
virtual void javaScriptConsoleMessage (QWebEnginePage::JavaScriptConsoleMessageLevel level , const QString & message , int lineNumber , const QString & sourceID )
virtual bool javaScriptPrompt (const QUrl & securityOrigin , const QString & msg , const QString & defaultValue , QString * result )

详细描述

A Web 引擎页面 保持 HTML 文档的内容、导航链接的历史及动作。

QWebEnginePage 的 API 非常类似 QWebEngineView ,仍提供常用功能像 action () (称为 pageAction () 在 QWebEngineView ), triggerAction (),和 findText ().

页面可以被加载使用 load () 或 setUrl ()。另外,若拥有随时可用的 HTML 内容,可以使用 setHtml ()。GET 方法始终被用于加载 URL。

QWebEnginePage 类还提供方法去检索目前由页面加载的 URL (见 url ()) 及要被加载的最初请求 URL (见 requestedUrl ))。这些方法使在加载进程期间出现 DNS 解答 (或重定向) 前后,检索 URL 成为可能。 requestedUrl () 还匹配被添加到页面历史的 URL ( QWebEngineHistory ) 若加载成功。

HTML 页面标题可以被访问采用 title () 特性。此外,页面还可以指定图标,其可以被访问使用 icon () 或其 URL 使用 iconUrl () 特性。若标题或图标改变,相应 titleChanged (), iconChanged () 和 iconUrlChanged () 信号会被发射。 zoomFactor () 特性使能够按比例因子缩放网页内容。

loadStarted () 信号被发射,当页面开始加载时,而 loadProgress () 信号被发射,每当网页元素 (如嵌入图像或脚本) 完成加载时。 loadFinished () 信号被发射,当页面内容已加载完成时 (独立于脚本执行或页面渲染)。其自变量,是 true or false ,指示加载操作是否成功。

HTML 文档被加载于 main frame 在网页中。若它引用 child frames (作为定义通过 <frame> or <iframe> 元素),它们被认为是内容的一部分。子级框架只可透过 JavaScript 单独访问。

网站定义 security origin 为客户端侧脚本 (或数据库) 安全访问彼此资源。来源由主机名、方案及端口号组成。例如站点 http://www.example.com/my/page.html and http://www.example.com/my/overview.html 允许共享同一数据库或访问彼此的文档,当用于 HTML 框架集和 JavaScript 时。同时, http://www.malicious.com/evil.html 被阻止访问其下资源为 http://www.example.com/ ,因为它们是不同安全来源。默认情况下,本地方案像 file:// and qrc:// 被认为是在同一安全来源中,且可以访问彼此资源。默认情况下,限定本地资源访问远程内容,这意味着 file:// 将不能访问 http://domain.com/foo.html .

脚本可以被执行在网页通过使用 runJavaScript (),在主 JavaScript world ,来自 web 内容的其它 JavaScript,或在它们自己的独立世界。虽然页面的 DOM 可以被访问从任何世界,但在某一世界中定义的 JavaScript 函数变量是不能从另一世界访问的。 QWebEngineScript::ScriptWorldId 为此目的提供了一些预定义 ID。使用 runJavaScript() 在世界 ID 外版本如同运行脚本在 MainWorld .

FocusOnNavigationEnabled 设置可以被用于使查看关联页面自动接收聚焦,当发生导航操作时 (像加载或重新加载页面或透过历史进行导航)。

成员类型文档编制

enum QWebEnginePage:: Feature

此枚举描述用户可能被要求授予 (或拒绝) 访问的平台特征访问类别:

常量 描述
QWebEnginePage::Notifications 0 最终用户的 Web 通知。
QWebEnginePage::Geolocation 1 定位硬件或服务。
QWebEnginePage::MediaAudioCapture 2 音频捕获设备 (譬如:麦克风)。
QWebEnginePage::MediaVideoCapture 3 视频设备 (譬如:摄像头)。
QWebEnginePage::MediaAudioVideoCapture 4 音频和视频捕获设备。
QWebEnginePage::MouseLock 5 鼠标锁定,将鼠标指针锁定到 Web 视图 (通常用于游戏)。
QWebEnginePage::DesktopVideoCapture 6 视频输出捕获 (也就是说,用户显示的捕获),例如:屏幕共享目的 (在 Qt 5.10 添加)。
QWebEnginePage::DesktopAudioVideoCapture 7 音频和视频两者输出捕获 (在 Qt 5.10 添加)。

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

enum QWebEnginePage:: FileSelectionMode

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

常量 描述
QWebEnginePage::FileSelectOpen 0 只返回一个文件名。
QWebEnginePage::FileSelectOpenMultiple 1 返回多个文件名。
QWebEnginePage::FileSelectUploadFolder 2 Allows users to specify a single existing folder for upload.

另请参阅 chooseFiles ().

enum QWebEnginePage:: FindFlag
flags QWebEnginePage:: FindFlags

此枚举描述的选项可用于 findText () 函数。来自以下列表中的选项可以 OR 在一起:

常量 描述
QWebEnginePage::FindBackward 1 向后搜索,而不是向前。
QWebEnginePage::FindCaseSensitively 2 默认情况下 findText () 工作不区分大小写。指定此选项把行为改为区分大小写的查找操作。

FindFlags 类型是 typedef 对于 QFlags <FindFlag>。它存储 FindFlag 值的 OR 组合。

enum QWebEnginePage:: JavaScriptConsoleMessageLevel

此枚举描述了 JavaScript 控制台消息,可以拥有的不同严重级别:

常量 描述
QWebEnginePage::InfoMessageLevel 0 消息为纯情报且可以被安全忽略。
QWebEnginePage::WarningMessageLevel 1 消息告知可能需要关注的意外行为 (或错误)。
QWebEnginePage::ErrorMessageLevel 2 消息指示出现错误。

[since 5.14] enum class QWebEnginePage:: LifecycleState

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

常量 描述
QWebEnginePage::LifecycleState::Active 0 正常状态。
QWebEnginePage::LifecycleState::Frozen 1 低 CPU 使用率状态,挂起大多数 HTML 任务源。
QWebEnginePage::LifecycleState::Discarded 2 很低资源使用率状态 (整个浏览上下文被丢弃)。

该枚举在 Qt 5.14 引入或被修改。

另请参阅 lifecycleState , 页面生命周期 API ,和 WebEngine 生命周期范例 .

此枚举描述导航请求类型:

常量 描述
QWebEnginePage::NavigationTypeLinkClicked 0 导航请求由点击链接产生。
QWebEnginePage::NavigationTypeTyped 1 导航请求由明确加载 URL 产生。
QWebEnginePage::NavigationTypeFormSubmitted 2 导航请求由表单提交产生。
QWebEnginePage::NavigationTypeBackForward 3 导航请求由后退 (或前进) 动作产生。
QWebEnginePage::NavigationTypeReload 4 导航请求由重新加载动作产生。
QWebEnginePage::NavigationTypeRedirect 6 导航请求由内容 (或服务器控制重定向) 产生。这还包括自动重新加载 (在 Qt 5.14 添加)。
QWebEnginePage::NavigationTypeOther 5 导航请求由上述未涵盖的其它手段触发。

另请参阅 acceptNavigationRequest ().

enum QWebEnginePage:: PermissionPolicy

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

常量 描述
QWebEnginePage::PermissionUnknown 0 用户是否授予 (或拒绝) 权限未知。
QWebEnginePage::PermissionGrantedByUser 1 用户已授予权限。
QWebEnginePage::PermissionDeniedByUser 2 用户已拒绝权限。

另请参阅 featurePermissionRequested (), featurePermissionRequestCanceled (), setFeaturePermission (),和 Feature .

[since 5.6] enum QWebEnginePage:: RenderProcessTerminationStatus

此枚举描述渲染进程终止状态:

常量 描述
QWebEnginePage::NormalTerminationStatus 0 渲染进程正常终止。
QWebEnginePage::AbnormalTerminationStatus 1 渲染进程以非零退出状态终止。
QWebEnginePage::CrashedTerminationStatus 2 渲染进程崩溃 (例如:由于分段故障)。
QWebEnginePage::KilledTerminationStatus 3 渲染进程被杀除,例如被 SIGKILL 或被任务管理器杀除。

该枚举在 Qt 5.6 引入或被修改。

enum QWebEnginePage:: WebAction

此枚举描述可以在网页上履行的动作类型。

动作才有效,当适用时。

可以确定动作的可用性,通过校验 isEnabled() 在返回动作通过 action ().

常量 描述
QWebEnginePage::NoWebAction - 1 没有动作被触发。
QWebEnginePage::Back 0 在导航链接历史中后退导航。
QWebEnginePage::Forward 1 在导航链接历史中前进导航。
QWebEnginePage::Stop 2 停止加载当前页面。
QWebEnginePage::Reload 3 重新加载当前页面。
QWebEnginePage::ReloadAndBypassCache 10 重新加载当前页面,但不使用任何本地缓存。
QWebEnginePage::Cut 4 把目前选中内容剪切到剪贴板。
QWebEnginePage::Copy 5 把目前选中内容拷贝到剪贴板。
QWebEnginePage::Paste 6 从剪贴板粘贴内容。
QWebEnginePage::Undo 7 撤消上一编辑动作。
QWebEnginePage::Redo 8 重做上一编辑动作。
QWebEnginePage::SelectAll 9 选择所有内容。才启用此动作,当聚焦页面内容时。可以强制聚焦通过 JavaScript window.focus() 调用,或 FocusOnNavigationEnabled 设置应启用以获得自动聚焦。
QWebEnginePage::PasteAndMatchStyle 11 采用当前样式从剪贴板粘贴内容。
QWebEnginePage::OpenLinkInThisWindow 12 在当前窗口打开当前链接 (在 Qt 5.6 添加)。
QWebEnginePage::OpenLinkInNewWindow 13 在新窗口中打开当前链接。要求实现 createWindow () 或 newWindowRequested () (Added in Qt 5.6)
QWebEnginePage::OpenLinkInNewTab 14 在新选项卡中打开当前链接。要求实现 createWindow () 或 newWindowRequested () (在 Qt 5.6 添加)。
QWebEnginePage::OpenLinkInNewBackgroundTab 31 在新背景选项卡中打开当前链接。要求实现 createWindow () 或 newWindowRequested () (在 Qt 5.7 添加)。
QWebEnginePage::CopyLinkToClipboard 15 把当前链接拷贝到剪贴板 (在 Qt 5.6 添加)。
QWebEnginePage::CopyImageToClipboard 17 把点击图像拷贝到剪贴板 (在 Qt 5.6 添加)。
QWebEnginePage::CopyImageUrlToClipboard 18 把点击图像的 URL 拷贝到剪贴板 (在 Qt 5.6 添加)。
QWebEnginePage::CopyMediaUrlToClipboard 20 把悬停音频 (或视频) 的 URL 拷贝到剪贴板 (在 Qt 5.6 添加)。
QWebEnginePage::ToggleMediaControls 21 在展示和隐藏悬停音频 (或视频) 元素控件之间触发 (在 Qt 5.6 添加)。
QWebEnginePage::ToggleMediaLoop 22 触发悬停音频 (或视频)是否应在完成时循环 (在 Qt 5.6 添加)。
QWebEnginePage::ToggleMediaPlayPause 23 触发悬停音频 (或视频) 元素的播放/暂停状态 (在 Qt 5.6 添加)。
QWebEnginePage::ToggleMediaMute 24 静音 (或取消静音) 悬停音频 (或视频) 元素 (在 Qt 5.6 添加)。
QWebEnginePage::DownloadLinkToDisk 16 把当前链接下载到磁盘。要求槽为 downloadRequested() (在 Qt 5.6 添加)。
QWebEnginePage::DownloadImageToDisk 19 把被突显图像下载到磁盘。要求槽为 downloadRequested() (在 Qt 5.6 添加)。
QWebEnginePage::DownloadMediaToDisk 25 将悬停音频或视频下载到磁盘。要求槽用于 downloadRequested() (在 Qt 5.6 添加)。
QWebEnginePage::InspectElement 26 触发任何附加 Web 审查程序以审查高亮元素 (在 Qt 5.6 添加)。
QWebEnginePage::ExitFullScreen 27 退出全屏模式 (在 Qt 5.6 添加)。
QWebEnginePage::RequestClose 28 请求关闭网页。若有定义, window.onbeforeunload 处理程序运行,且用户可以确认或拒绝关闭页面。若有确认关闭请求, windowCloseRequested 被发射 (在 Qt 5.6 添加)。
QWebEnginePage::Unselect 29 清零当前选定 (在 Qt 5.7 添加)。
QWebEnginePage::SavePage 30 把当前页面保存到磁盘。MHTML 是用于把网页存储在磁盘的默认格式。要求槽为 downloadRequested() (在 Qt 5.7 添加)。
QWebEnginePage::ViewSource 32 在新选项卡中展示当前页面的源代码。要求实现 createWindow () 或 newWindowRequested () (在 Qt 5.8 添加)。
QWebEnginePage::ToggleBold 33 触发选定或光标位置处的粗体。要求 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::ToggleItalic 34 触发选定或光标位置处的斜体。要求 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::ToggleUnderline 35 触发选定或光标位置处的下划线。要求 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::ToggleStrikethrough 36 触发选定或光标位置处的删除线。要求 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::AlignLeft 37 左对齐行所包含的选定或光标。需要 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::AlignCenter 38 居中对齐行所包含的选定或光标。需要 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::AlignRight 39 右对齐行所包含的选定或光标。需要 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::AlignJustified 40 拉伸包含选定或光标的行,以使每行拥有相等宽度。要求 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::Indent 41 缩进包含选定或光标的行。要求 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::Outdent 42 伸出包含选定或光标的行。要求 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::InsertOrderedList 43 将有序列表插入在当前光标位置处,删除当前选定。要求 contenteditable="true" (在 Qt 5.10 添加)。
QWebEnginePage::InsertUnorderedList 44 将无序列表插入在当前光标位置处,删除当前选定。要求 contenteditable="true" (在 Qt 5.10 添加)。

enum QWebEnginePage:: WebWindowType

此枚举描述可以创建的窗口类型通过 createWindow () 函数:

常量 描述
QWebEnginePage::WebBrowserWindow 0 完整 Web 浏览器窗口。
QWebEnginePage::WebBrowserTab 1 Web 浏览器选项卡。
QWebEnginePage::WebDialog 2 没有装饰的窗口。
QWebEnginePage::WebBrowserBackgroundTab 3 Web 浏览器选项卡不隐藏当前可见 WebEngineView (在 Qt 5.7 添加)。

特性文档编制

[since 5.7] audioMuted : bool

此特性保持当前页面音频是否被静音。

默认值为 false .

该特性在 Qt 5.7 引入。

访问函数:

bool isAudioMuted () const
void setAudioMuted (bool muted )

通知程序信号:

void audioMutedChanged (bool muted )

另请参阅 recentlyAudible .

[since 5.6] backgroundColor : QColor

此特性保持文档本体背后的页面背景颜色。

可以把背景颜色设为 Qt::transparent 或半透明颜色以透视文档,或将其设为匹配混合应用程序 Web 内容以防在加载期间可能出现的白色闪烁。

默认值为白色。

该特性在 Qt 5.6 引入。

访问函数:

QColor backgroundColor () const
void setBackgroundColor (const QColor & color )

[read-only, since 5.7] contentsSize : const QSizeF

此特性保持页面内容的尺寸。

该特性在 Qt 5.7 引入。

访问函数:

QSizeF contentsSize () const

通知程序信号:

void contentsSizeChanged (const QSizeF & size )

[read-only] hasSelection : const bool

此特性保持此页面是否包含选定内容。

访问函数:

bool hasSelection () const

另请参阅 selectionChanged ().

[read-only, since 5.7] icon : const QIcon

此特性保持关联目前查看页面的图标。

By default, this property contains a null icon. If touch icons are disabled (see QWebEngineSettings::TouchIconsEnabled ), the favicon is provided in two sizes (16x16 and 32x32 pixels) encapsulated in QIcon . Otherwise, single icon is provided with the largest available size.

该特性在 Qt 5.7 引入。

访问函数:

QIcon icon () const

通知程序信号:

void iconChanged (const QIcon & icon )

另请参阅 iconChanged (), iconUrl (), iconUrlChanged (),和 QWebEngineSettings::TouchIconsEnabled .

[read-only] iconUrl : const QUrl

此特性保持关联目前查看页面的图标 URL。

默认情况下,此特性包含空 URL。

访问函数:

QUrl iconUrl () const

通知程序信号:

void iconUrlChanged (const QUrl & url )

另请参阅 iconUrlChanged (), icon (),和 iconChanged ().

[since 5.14] lifecycleState : LifecycleState

此特性保持页面的当前生命周期状态。

以下限定由 setter 实施:

  • A visible 页面必须保留在 Active 状态。
  • 若页面正在被审查通过 devToolsPage 那么 2 页面都必须保留在 Active 状态。
  • 页面在 Discarded 状态,才能过渡到 Active 状态。这会导致页面的重新加载。

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

该特性在 Qt 5.14 引入。

访问函数:

QWebEnginePage::LifecycleState lifecycleState () const
void setLifecycleState (QWebEnginePage::LifecycleState state )

通知程序信号:

void lifecycleStateChanged (QWebEnginePage::LifecycleState state )

另请参阅 recommendedState , 页面生命周期 API ,和 WebEngine 生命周期范例 .

[read-only, since 6.2] loading : const bool

This property holds whether the page is currently loading.

该特性在 Qt 6.2 引入。

访问函数:

bool isLoading () const

通知程序信号:

void loadingChanged (const QWebEngineLoadingInfo & loadingInfo )

另请参阅 QWebEngineLoadingInfo , loadStarted ,和 loadFinished .

[read-only, since 5.7] recentlyAudible : const bool

此特性保持当前页面的 audible state ,也就是,最近是否有播放音频。

默认值为 false .

该特性在 Qt 5.7 引入。

访问函数:

bool recentlyAudible () const

通知程序信号:

void recentlyAudibleChanged (bool recentlyAudible )

另请参阅 audioMuted .

[read-only, since 5.14] recommendedState : const LifecycleState

此特性保持页面生命周期状态的推荐限制。

把生命周期状态设为低于推荐状态的资源使用率状态可能导致副作用 (譬如:停止后台音频回放或丢失 HTML 表单输入)。不管怎样,把生命周期状态设为更高资源状态是完全安全的。

该特性在 Qt 5.14 引入。

访问函数:

QWebEnginePage::LifecycleState recommendedState () const

通知程序信号:

void recommendedStateChanged (QWebEnginePage::LifecycleState state )

另请参阅 lifecycleState , 页面生命周期 API ,和 WebEngine 生命周期范例 .

[read-only, since 5.15] renderProcessPid : const qint64

此特性保持赋值给当前页面主框架的渲染进程的 PID (进程 ID)。

若尚无可用渲染进程, 0 被返回。

该特性在 Qt 5.15 引入。

访问函数:

qint64 renderProcessPid () const

通知程序信号:

void renderProcessPidChanged (qint64 pid )

[read-only] requestedUrl : const QUrl

此特性保持当前查看页面最初请求加载的 URL。

注意: URL 可能异于返回的经由 url (),它是来自 DNS 解析或重定向结果的实际 URL。

访问函数:

QUrl requestedUrl () const

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

[read-only, since 5.7] scrollPosition : const QPointF

此特性保持页面内容的卷动位置。

该特性在 Qt 5.7 引入。

访问函数:

QPointF scrollPosition () const

通知程序信号:

void scrollPositionChanged (const QPointF & position )

[read-only] selectedText : const QString

此特性保持当前选中的文本。

默认情况下,此特性包含空字符串。

访问函数:

QString selectedText () const

另请参阅 selectionChanged ().

[read-only] title : const QString

此特性保持页面的标题,作为定义通过 HTML <title> 元素。

若页面没有 <title> 元素,则使用 URL 代替。对于 file:// URL,仅使用文件名,而非完整路径。

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

访问函数:

QString title () const

另请参阅 titleChanged ().

url : QUrl

此特性保持目前查看页面的 URL。

设置此特性清零视图并加载 URL。

默认情况下,此特性包含空的无效 URL。

访问函数:

QUrl url () const
void setUrl (const QUrl & url )

另请参阅 urlChanged ().

[since 5.14] visible : bool

此特性保持页面是否在页面可见性 API 中被认为可见。

设置此特性将改变 Document.hidden Document.visibilityState 特性在 JavaScript,可以用于网站以自愿缩减资源使用率若它们对用户不可见。

若页面被连接到 view 那么,此特性将由视图根据自身的可见性自动管理。

该特性在 Qt 5.14 引入。

访问函数:

bool isVisible () const
void setVisible (bool visible )

通知程序信号:

void visibleChanged (bool visible )

另请参阅 lifecycleState .

zoomFactor : qreal

此特性保持页面内容的缩放因子。

有效值范围从 0.25 to 5.0 。默认因子为 1.0 .

访问函数:

qreal zoomFactor () const
void setZoomFactor (qreal factor )

成员函数文档编制

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

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

运行包含的 JavaScript 代码在 scriptSource 无需校验是否已构建页面 DOM。若需要如何更多控制脚本运行,考虑使用 scripts () 代替。

为避免与页面中执行的其它脚本冲突,运行脚本的世界的指定通过 worldId 。世界 ID 值是相同的提供通过 QWebEngineScript::ScriptWorldId ,和介于 0 and 256 。若忽略 world ID,脚本运行在 MainWorld .

当执行脚本时, resultCallback 被调用带最后执行语句的结果。 resultCallback 可以是函数指针、函子或 Lambda,且期望接受 QVariant 参数。例如:

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

仅纯数据可以被返回从 JavaScript 作为结果值。支持的数据类型包括所有 JSON 数据类型,例如, Date and ArrayBuffer 。不支持的数据类型包括,例如, 函数 and Promise .

警告: 不要在回调函数中执行长例程,因为可能阻塞 Web 引擎页面的渲染。

警告: 我们保证回调 ( resultCallback ) 始终被调用,但可能在页面销毁期间完成。当 QWebEnginePage 被删除,将采用无效值触发回调,因此是不安全的使用相应 QWebEnginePage or QWebEngineView 实例在其中。

该函数在 Qt 5.7 引入。

另请参阅 scripts (), QWebEngineScript::ScriptWorldId ,和 脚本注入 .

[since 5.5] QWebEnginePage:: QWebEnginePage ( QWebEngineProfile * profile , QObject * parent = nullptr)

构造空 Web 引擎页面按 Web 引擎 Profile (配置文件) profile 采用父级 parent .

若 Profile (配置文件) 不是默认 Profile,调用者必须确保该 Profile 保持存活只要页面存在。

该函数在 Qt 5.5 引入。

QWebEnginePage:: QWebEnginePage ( QObject * parent = nullptr)

构造空的 QWebEnginePage 采用父级 parent .

[signal, since 5.7] void QWebEnginePage:: audioMutedChanged ( bool muted )

此信号被发射当页面的 muted 状态改变。

注意: 不要混淆特定 HTML5 音频或视频元素的静音。

注意: 通知程序信号对于特性 audioMuted .

该函数在 Qt 5.7 引入。

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

此信号被发射当访问 requestUrl 要求身份验证。 authenticator 应该被用于传递连接的用户名和口令。

[signal] void QWebEnginePage:: certificateError (const QWebEngineCertificateError & certificateError )

This signal is emitted when an invalid certificate error is raised while loading a given request.

certificateError parameter contains information about the certificate and details of the error, it also provides the way to ignore the error and complete the request or stop loading the request.

另请参阅 QWebEngineCertificateError .

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

此信号被发射当网站被标识,通过 securityOrigin 取消先前发出的请求为使用 feature .

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

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

此信号被发射当网站被标识,通过 securityOrigin 请求使用资源 (或设备) 的标识通过 feature .

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

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

此信号被发射当搜索字符串搜索页面完成时。 result 是字符串搜索的结果。

该函数在 Qt 5.14 引入。

另请参阅 findText ().

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

此信号被发射当网页发出进入 Web 元素 (通常为视频元素) 全屏模式的请求时。

请求对象 fullScreenRequest 可用于接受或拒绝请求。

若接受请求,全屏请求元素将填充视口,但直到应用程序使视图全屏 (或将页面移至全屏视图)。

另请参阅 QWebEngineSettings::FullScreenSupportEnabled .

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

此信号被发射每当文档希望把页面位置和大小更改为 geom 。这会发生,例如透过 JavaScript。

注意: setGeometry() 期望尺寸排除窗口装饰,而 geom 包括。必须移除框架边距尺寸从 geom 以正确处理此信号。

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

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

此信号被发射当页面关联的 Favicon 图标被改变时。新图标被指定由 icon .

注意: 通知程序信号对于特性 icon .

该函数在 Qt 5.7 引入。

另请参阅 icon (), iconUrl (),和 iconUrlChanged ().

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

此信号被发射当页面关联的 Favicon 图标 URL 被改变时。新图标 URL 被指定由 url .

注意: 通知程序信号对于特性 iconUrl .

另请参阅 iconUrl (), icon (),和 iconChanged ().

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

此信号被发射当鼠标悬停链接上时。 url 包含链接的目标 URL。

[signal] void QWebEnginePage:: loadFinished ( bool ok )

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

注意: 导航请求可以委托给 Qt 应用程序,而不是让 HTML 处理程序引擎处理它们,通过重载 acceptNavigationRequest () 函数。因为加载过程已开始,且 loadStarted () 信号被发射 before 请求被接受 (或拒绝), loadFinished() 信号返回 false 是可预期的即使在委派请求后。

另请参阅 loadStarted () 和 acceptNavigationRequest ().

[signal] void QWebEnginePage:: loadProgress ( int progress )

此信号被发射当全局进度状态改变时。当前值被提供由 progress 并缩放到 0 - 100,其是默认范围为 QProgressBar 。它累计所有子级帧的变化。

[signal] void QWebEnginePage:: loadStarted ()

此信号被发射当页面开始加载内容。

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

[signal, since 6.2] void QWebEnginePage:: loadingChanged (const QWebEngineLoadingInfo & loadingInfo )

This signal is emitted when loading the page specified by loadingInfo begins, ends, or fails.

注意: 通知程序信号对于特性 loading .

该函数在 Qt 6.2 引入。

This signal is emitted on navigation together with the call the acceptNavigationRequest (). It can be used to accept or ignore the request . The default is to accept.

该函数在 Qt 6.2 引入。

另请参阅 acceptNavigationRequest ().

[signal, since 6.2] void QWebEnginePage:: newWindowRequested ( QWebEngineNewWindowRequest & request )

此信号被发射当 request is issued to load a page in a separate web engine window. This can either be because the current page requested it explicitly through a JavaScript call to window.open , or because the user clicked on a link while holding Shift, Ctrl, or a built-in combination that triggers the page to open in a new window.

The signal is handled by calling openIn() with the new page on the request. If this signal is not handled, the requested load will fail.

注意: This signal is not emitted if createWindow () handled the request first.

该函数在 Qt 6.2 引入。

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

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

此信号被发射,当把网页打印成 PDF 文件完成时。 filePath 将包含请求创建的文件路径,且 success 将是 true 若成功创建文件且 false 否则。

另请参阅 printToPdf ().

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

此信号被发射当访问 requestUrl 凭借 proxyHost 要求对代理进行身份验证。 authenticator 应该被用于传递连接的用户名和口令。

[signal, since 5.11] void QWebEnginePage:: quotaRequested ( QWebEngineQuotaRequest quotaRequest )

此信号被发射当网页请求的持久性存储大于应用程序在文件系统 API 中的当前分配时。默认配额为 0 字节。

请求对象 quotaRequest 可用于接受或拒绝请求。

该函数在 Qt 5.11 引入。

[signal, since 5.7] void QWebEnginePage:: recentlyAudibleChanged ( bool recentlyAudible )

此信号会被发射,当页面的可听见状态, recentlyAudible 改变,因为音频播放或停止。

注意: 信号也会被发射当调用 setAudioMuted () 方法。此外,若音频被暂停,此信号被发射按近似 2 秒延迟 ,从音频被暂停的那一刻起。

注意: 通知程序信号对于特性 recentlyAudible .

该函数在 Qt 5.7 引入。

[signal, since 5.11] 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();
}
					

该函数在 Qt 5.11 引入。

[signal, since 5.15] void QWebEnginePage:: renderProcessPidChanged ( qint64 pid )

此信号被发射当底层渲染进程 PID, pid ,改变。

注意: 通知程序信号对于特性 renderProcessPid .

该函数在 Qt 5.15 引入。

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

此信号被发射当渲染进程采用非零退出状态被终止时。 terminationStatus 是进程的终止状态,且 exitCode 是进程终止的状态码。

该函数在 Qt 5.6 引入。

[signal, since 5.12] void QWebEnginePage:: selectClientCertificate ( QWebEngineClientCertificateSelection clientCertificateSelection )

此信号被发射当网站请求 SSL 客户端证书,且在系统客户端证书存储中发现一个或多个。

处理信号是异步的,且加载会等待直到证书被选中,或上一拷贝 clientCertificateSelection 被销毁。

若信号未被处理, clientCertificateSelection 被自动销毁,且将在没有客户端证书的情况下继续加载。

该函数在 Qt 5.12 引入。

另请参阅 QWebEngineClientCertificateSelection .

[signal] void QWebEnginePage:: selectionChanged ()

此信号被发射每当以交互或编程方式改变选定时。例如,通过调用 triggerAction () 采用选定动作。

注意: 当使用鼠标通过左键点击并拖拽以选择文本时,会为每个新选中字符发射信号,而不是在释放鼠标左键时。

另请参阅 selectedText ().

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

此信号被发射每当页面标题改变时。 title 字符串指定新标题。

另请参阅 title ().

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

此信号被发射带页面 URL,当接收到页面标题时。新 URL 被指定由 url .

另请参阅 url ().

[signal] void QWebEnginePage:: windowCloseRequested ()

此信号被发射每当页面请求关闭 Web 浏览器窗口时,例如透过 JavaScript window.close() 调用。

另请参阅 RequestClose .

[虚拟] QWebEnginePage:: ~QWebEnginePage ()

销毁 Web 页面。

[virtual protected, since 5.5] bool QWebEnginePage:: acceptNavigationRequest (const QUrl & url , QWebEnginePage::NavigationType type , bool isMainFrame )

此函数被调用当接收请求以导航到指定 url 通过指定导航类型 type . isMainFrame 指示请求是对应主框架,还是子级框架。若函数返回 true ,导航请求被接受且 url 被加载。默认实现接受所有导航请求。

可以将导航请求委托给 Qt 应用程序,而不是让 HTML 处理程序引擎通过重载此函数处理它们。这是必要的,当把 HTML 文档用作用户界面的一部分,且不显示外部数据时 (例如:当显示结果列表时)。

注意: 不会调用此函数,对于同一页面中的片段导航。例如,这种导航是通过点击页面中的 #fragment 链接发生的。不会触发加载不同文档,即使它改变页面的URL 并添加历史条目。它仅充当页面内卷动的快捷方式。因此,不期望发生这种导航类型的委托。

注意: 加载进程开始且 loadStarted () 信号被发射 before 请求被接受 (或拒绝)。因此, loadFinished () 信号返回 false 是可预期的即使在委派请求后。

注意: 当使用 setHtml or setContent 采用相对链接,请确保有指定基 URL,否则将认为链接无效,且不会发出导航请求。

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

该函数在 Qt 5.5 引入。

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

返回 QAction 为指定 WebAction action .

动作归 QWebEnginePage 但可以通过改变其特性定制外观。

QWebEnginePage 还负责实现动作,以便触发时在页面履行相应动作。

另请参阅 triggerAction ().

[virtual protected] QStringList QWebEnginePage:: chooseFiles ( QWebEnginePage::FileSelectionMode mode , const QStringList & oldFiles , const QStringList & acceptedMimeTypes )

This function is called when the web content requests a file name, for example as a result of the user clicking on a file upload button in an HTML form.

mode indicates whether only one file or multiple files are expected to be returned.

A suggested filename may be provided as the first entry of oldFiles . acceptedMimeTypes is ignored by the default implementation, but might be used by overrides.

[virtual protected] QWebEnginePage *QWebEnginePage:: createWindow ( QWebEnginePage::WebWindowType type )

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

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

若网页关联视图为 QWebEngineView 对象,则默认实现把请求转发给 QWebEngineView::createWindow ();否则,返回 null 指针。

If this call is not implemented or does not return a new page, newWindowRequested () is emitted to handle the request.

注意: 在通过 JavaScript 触发创建窗口的情况中,除重实现此方法外,应用程序还必须设置 QWebEngineSettings::JavascriptCanOpenWindows to true 为让方法被调用。

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

[since 5.11] QWebEnginePage *QWebEnginePage:: devToolsPage () const

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

返回 nullptr 若未设置开发者工具页面。

该函数在 Qt 5.11 引入。

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

[since 5.10] void QWebEnginePage:: download (const QUrl & url , const QString & filename = QString())

下载来自定位的资源,给定通过 url 到本地文件。

filename 被给定,它会被用作建议文件名。若它是相对的,则采用给定名称把文件保存在标准下载定位。若它是 null 或空 QString ,使用默认文件名。

这会发射 QWebEngineProfile::downloadRequested (),在下载开始后。

该函数在 Qt 5.10 引入。

[override virtual] bool QWebEnginePage:: event ( QEvent * e )

重实现: QObject::event (QEvent *e).

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

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

要清零搜索高亮,只需传递空字符串。

resultCallback 必须接受 QWebEngineFindTextResult 参数。

警告: 我们保证回调 ( resultCallback ) 始终被调用,但可能在页面销毁期间完成。当 QWebEnginePage 被删除,将采用无效值触发回调,因此是不安全的使用相应 QWebEnginePage or QWebEngineView 实例在其中。

例如:

    m_view->page()->findText(QStringLiteral("Qt"), QWebEnginePage::FindFlags(), [this](bool found) {
        if (!found) QMessageBox::information(m_view, QString(), QStringLiteral("No occurrences found"));
    });
					

另请参阅 findTextFinished ().

QWebEngineHistory *QWebEnginePage:: history () const

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

[since 5.11] QWebEnginePage *QWebEnginePage:: inspectedPage () const

返回此页面正在审查的页面,若有的话。

返回 nullptr 如果此页面不是开发者工具页面。

该函数在 Qt 5.11 引入。

另请参阅 setInspectedPage () 和 devToolsPage ().

[virtual protected] void QWebEnginePage:: javaScriptAlert (const QUrl & securityOrigin , const QString & msg )

此函数被调用,每当 JavaScript 程序运行在附属框架采用 securityOrigin 调用 alert() 函数采用消息 msg .

默认实现展示消息, msg ,采用 QMessageBox::information .

[virtual protected] bool QWebEnginePage:: javaScriptConfirm (const QUrl & securityOrigin , const QString & msg )

此函数被调用,每当 JavaScript 程序运行在附属框架采用 securityOrigin 调用 confirm() 函数采用消息 msg 。返回 true 若用户确认消息;否则返回 false .

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

默认实现执行查询使用 QMessageBox::information with QMessageBox::Ok and QMessageBox::Cancel 按钮。

[virtual protected] void QWebEnginePage:: javaScriptConsoleMessage ( QWebEnginePage::JavaScriptConsoleMessageLevel level , const QString & message , int lineNumber , const QString & sourceID )

This function is called when a JavaScript program tries to print the message to the web browser's console.

For example, in case of evaluation errors the source URL may be provided in sourceID as well as the lineNumber .

level indicates the severity of the event that triggered the message. That is, whether it was triggered by an error or a less severe event.

Since Qt 5.6, the default implementation logs the messages in a js 日志类别 .

另请参阅 控制台日志 .

[virtual protected] bool QWebEnginePage:: javaScriptPrompt (const QUrl & securityOrigin , const QString & msg , const QString & defaultValue , QString * result )

此函数被调用,每当 JavaScript 程序运行在附属框架采用 securityOrigin tries to prompt the user for input. The program may provide an optional message, msg , as well as a default value for the input in defaultValue .

If the prompt was cancelled by the user, the implementation should return false ; otherwise the result should be written to result and true should be returned. If the prompt was not cancelled by the user, the implementation should return true and the result string must not be null.

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

void QWebEnginePage:: load (const QUrl & url )

加载 url 进此页面。

注意: 视图仍然相同,直到达成足够数据才显示新 URL。

另请参阅 setUrl (), setHtml (),和 setContent ().

[since 5.9] void QWebEnginePage:: load (const QWebEngineHttpRequest & request )

发出指定 request 并加载响应。

该函数在 Qt 5.9 引入。

另请参阅 load (), setUrl (), url (), urlChanged (),和 QUrl::fromUserInput ().

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

Renders the current content of the page into a PDF document and saves it in the location specified in filePath . The page size and orientation of the produced PDF document are taken from the values specified in layout , while the range of pages printed is taken from ranges with the default being printing all pages.

This method issues an asynchronous request for printing the web page into a PDF and returns immediately. To be informed about the result of the request, connect to the signal pdfPrintingFinished ().

If a file already exists at the provided file path, it will be overwritten.

另请参阅 pdfPrintingFinished ().

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

Renders the current content of the page into a PDF document and returns a byte array containing the PDF data as parameter to resultCallback . The page size and orientation of the produced PDF document are taken from the values specified in layout , while the range of pages printed is taken from ranges with the default being printing all pages.

resultCallback must take a const reference to a QByteArray as parameter. If printing was successful, this byte array will contain the PDF data, otherwise, the byte array will be empty.

警告: 我们保证回调 ( resultCallback ) 始终被调用,但可能在页面销毁期间完成。当 QWebEnginePage 被删除,将采用无效值触发回调,因此是不安全的使用相应 QWebEnginePage or QWebEngineView 实例在其中。

[since 5.5] QWebEngineProfile *QWebEnginePage:: profile () const

返回页面所属 Web 引擎 Profile (配置文件)。

该函数在 Qt 5.5 引入。

[since 5.8] void QWebEnginePage:: replaceMisspelledWord (const QString & replacement )

替换当前拼写错误单词采用 replacement .

可以找到当前拼写错误单词在 QWebEngineContextMenuRequest::misspelledWord (),且置换建议在 QWebEngineContextMenuRequest::spellCheckerSuggestions ().

该函数在 Qt 5.8 引入。

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

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

网页被保存到 filePath 以指定 format .

这是以下动作的捷径:

  • 触发保存 Web 动作。
  • 接受下一下载项,并设置指定文件路径和保存格式。

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

该函数在 Qt 5.8 引入。

另请参阅 QWebEngineDownloadRequest::SavePageFormat .

QWebEngineScriptCollection &QWebEnginePage:: scripts ()

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

此外,页面还可能执行添加脚本透过 QWebEngineProfile::scripts ().

另请参阅 QWebEngineScriptCollection , QWebEngineScript ,和 脚本注入 .

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

把网页内容设为 data 。若 mimeType 自变量为空,假定内容为 text/plain,charset=US-ASCII .

内容中引用的外部对象的定位相对于 baseUrl .

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

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

警告: 内容将被 % (百分号) 编码在凭借 IPC 被发送到渲染器之前。这可能增加其大小。% (百分号) 编码内容的最大大小 = 2 MB - 6 Bytes + MIME 类型字符串长度。

另请参阅 toHtml () 和 setHtml ().

[since 5.11] void QWebEnginePage:: setDevToolsPage ( QWebEnginePage * devToolsPage )

绑定 devToolsPage 成此页面的开发者工具。触发 devToolsPage 以采用开发者工具导航到内部 URL。

这如同调用 setInspectedPage () 在 devToolsPage with this 作为自变量。

该函数在 Qt 5.11 引入。

另请参阅 devToolsPage () 和 setInspectedPage ().

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

设置网站权限标识通过 securityOrigin 要使用 feature to policy .

注意: This method is primarily for calling after a featurePermissionRequested () signal has been emitted to trigger the feature permission response. It can also be called before a request has been emitted, but will only set a granted permission for passive checks, mainly for Notification APIs that can check if permission has already been granted before explicitly requesting it.

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

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

将此页面的内容设为 html . baseUrl 是可选的和用于解析文档中的相对 URL,譬如:引用的图像或样式表。

html 被立即加载;外部对象是异步加载的。

若脚本在 html 运行时间超过默认 (目前 10 秒) 脚本超时,(例如:由于被模态 JavaScript 警报对话框所阻塞),此方法将尽快返回在超时之后且任何后续 html 将异步加载。

When using this method, the web engine assumes that external resources, such as JavaScript programs or style sheets, are encoded in UTF-8 unless otherwise specified. For example, the encoding of an external script can be specified through the charset attribute of the HTML script tag. It is also possible for the encoding to be specified by the web server.

此方便函数相当于 setContent (html, "text/html", baseUrl).

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

警告: This function works only for HTML, for other mime types (such as XHTML and SVG) setContent () 应该被使用以取而代之。

警告: The content will be percent encoded before being sent to the renderer via IPC. This may increase its size. The maximum size of the percent encoded content is 2 megabytes minus 30 bytes.

另请参阅 toHtml (), setContent (),和 load ().

[since 5.11] void QWebEnginePage:: setInspectedPage ( QWebEnginePage * page )

将此页面的内部开发者工具 URL 导航到 page .

这如同调用 setDevToolsPage () 在 page with this 作为自变量。

该函数在 Qt 5.11 引入。

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

[since 5.13] void QWebEnginePage:: setUrlRequestInterceptor ( QWebEngineUrlRequestInterceptor * interceptor )

注册请求拦截器 interceptor 到拦截 URL 请求。

页面不拥有指针的所有权。此拦截器被调用,在 Profile (配置文件) 中的任何拦截器之后,且不像 Profile 拦截器,仅拦截来自此页面的 URL 请求。

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

该函数在 Qt 5.13 引入。

另请参阅 QWebEngineUrlRequestInfo and QWebEngineProfile::setUrlRequestInterceptor ().

[since 5.7] void QWebEnginePage:: setWebChannel ( QWebChannel * channel , quint32 worldId = 0)

将此页面要使用的 Web 通道实例设为 channel 并使用 Chromium IPC (进程间通信) 消息将它连接到 Web 引擎传输。传输被暴露在 JavaScript 世界 worldId as qt.webChannelTransport ,其应该被使用当使用 Qt WebChannel JavaScript API .

注意: 页面不拥有通道对象的所有权。

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

该函数在 Qt 5.7 引入。

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

QWebEngineSettings *QWebEnginePage:: settings () const

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

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

以 HTML 形式检索页面内容 (封闭于 HTML 和 BODY 标签) 的异步方法。成功完成后, resultCallback 被调用带有页面内容。

注意: resultCallback 可以是函数指针、函子或 Lambda,且期望接受 QString 参数。

警告: 我们保证回调 ( resultCallback ) 始终被调用,但可能在页面销毁期间完成。当 QWebEnginePage 被删除,将采用无效值触发回调,因此是不安全的使用相应 QWebEnginePage or QWebEngineView 实例在其中。

另请参阅 setHtml () 和 toPlainText ().

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

把检索页面的内容 (完全剥离所有 HTML 格式) 转换为纯文本的异步方法。成功完成时, resultCallback 被调用带有页面内容。

注意: resultCallback 可以是函数指针、函子或 Lambda,且期望接受 QString 参数。

警告: 我们保证回调 ( resultCallback ) 始终被调用,但可能在页面销毁期间完成。当 QWebEnginePage 被删除,将采用无效值触发回调,因此是不安全的使用相应 QWebEnginePage or QWebEngineView 实例在其中。

另请参阅 toHtml ().

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

此函数可以被调用以触发指定 action 。它也会被调用通过 Qt WebEngine 若用户触发动作 (例如:透过上下文菜单项)。

action 是可复选动作,则 checked 指定动作是否被触发。

另请参阅 action ().

[since 5.5] QWebChannel *QWebEnginePage:: webChannel () const

返回指向此页面所用的 Web 通道实例的指针,或 none 指针若未设置。此通道通过 Chromium IPC (进程间通信) 自动使用内部 Web 引擎传输机制,该机制在此页面的 JavaScript 上下文中被公开为 qt.webChannelTransport .

该函数在 Qt 5.5 引入。

另请参阅 setWebChannel ().