WebEngineView QML 类型
A WebEngineView 在 QML 应用程序内渲染网页内容。 更多...
导入语句 | import QtWebEngine |
自 | QtWebEngine 1.0 |
继承 |
属性
- ErrorDomain : 枚举
- Feature : 枚举
- FindFlags : 枚举
- JavaScriptConsoleMessageLevel : 枚举
- LifecycleState : 枚举
(自 QtWebEngine 1.10)
- LoadStatus : 枚举
- PrintedPageOrientation : 枚举
(自 QtWebEngine 1.3)
- PrintedPageSizeId : 枚举
(自 QtWebEngine 1.3)
- RenderProcessTerminationStatus : 枚举
(自 QtWebEngine 1.2)
- WebAction : 枚举
(自 QtWebEngine 1.2)
- activeFocusOnPress : bool
(自 QtWebEngine 1.2)
- audioMuted : bool
(自 QtWebEngine 1.3)
- backgroundColor : 颜色
(自 QtWebEngine 1.2)
- canGoBack : bool
- canGoForward : bool
- contentsSize : 大小
(自 QtWebEngine 1.3)
- devToolsId : WebEngineView
(自 QtWebEngine 6.6)
- devToolsView : WebEngineView
(自 QtWebEngine 1.7)
- history : WebEngineHistory
(自 QtWebEngine 1.1)
- icon : url
- inspectedView : WebEngineView
(自 QtWebEngine 1.7)
- isFullScreen : bool
(自QtWebEngine 1.1起)
- lifecycleState : LifecycleState
(自QtWebEngine 1.10起)
- loadProgress : int
- loading : bool
- profile : WebEngineProfile
(自QtWebEngine 1.1起)
- recentlyAudible : bool
(自QtWebEngine 1.3起)
- recommendedState : LifecycleState
(自QtWebEngine 1.10起)
- renderProcessPid : qint64
(自QtWebEngine 1.11起)
- scrollPosition : point
(自QtWebEngine 1.3起)
- settings : WebEngineSettings
(自QtWebEngine 1.1起)
- title : string
- touchHandleDelegate : Component
(自QtWebEngine 6.4起)
- url : url
- userScripts : WebEngineScriptCollection
(自QtWebEngine 1.1起)
- webChannel : QQmlWebChannel
(自QtWebEngine 1.1起)
- webChannelWorld : int
(自QtWebEngine 1.3起)
- zoomFactor : real
(自QtWebEngine 1.1起)
信号
- activeFocusOnPressChanged(bool activeFocusOnPress)
(自QtWebEngine 1.2起)
- audioMutedChanged(bool muted)
(自QtWebEngine 1.3起)
- authenticationDialogRequested(AuthenticationDialogRequest request)
(自QtWebEngine 1.4起)
- backgroundColorChanged()
(自QtWebEngine 1.2起)
- certificateError(WebEngineCertificateError error)
(自QtWebEngine 1.1起)
- colorDialogRequested(ColorDialogRequest request)
(自QtWebEngine 1.4起)
- contextMenuRequested(ContextMenuRequest request)
(自QtWebEngine 1.4起)
- featurePermissionRequested(url securityOrigin, Feature feature)
(自QtWebEngine 1.1起)
- fileDialogRequested(FileDialogRequest request)
(自QtWebEngine 1.4起)
- findTextFinished(FindTextResult result)
(自QtWebEngine 1.10起)
- fullScreenRequested(FullScreenRequest request)
(自QtWebEngine 1.1起)
- geometryChangeRequested(rect geometry, rect frameGeometry)
(自QtWebEngine 1.7起)
- javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, 字符串 message, 整数 lineNumber, 字符串 sourceID)
- javaScriptDialogRequested(JavaScriptDialogRequest request)
(自 QtWebEngine 1.4)
- linkHovered(url hoveredUrl)
- loadingChanged(WebEngineLoadingInfo loadingInfo)
- navigationRequested(WebEngineNavigationRequest request)
- newWindowRequested(WebEngineNewWindowRequest request)
(自 QtWebEngine 2.0)
- pdfPrintingFinished(字符串 filePath, bool success)
(自 QtWebEngine 1.5)
- printRequested()
(自 QtWebEngine 1.8)
- recentlyAudibleChanged(bool recentlyAudible)
(自 QtWebEngine 1.3)
- registerProtocolHandlerRequested(RegisterProtocolHandlerRequest request)
(自 QtWebEngine 1.7)
- renderProcessPidChanged(qint64 pid)
(自 QtWebEngine 1.11)
- renderProcessTerminated(RenderProcessTerminationStatus terminationStatus, 整数 exitCode)
(自 QtWebEngine 1.2)
- selectClientCertificate(WebEngineClientCertificateSelection clientCertificateSelection)
(自 QtWebEngine 1.9)
- tooltipRequested(TooltipRequest request)
(自 QtWebEngine 1.10)
- touchSelectionMenuRequested(TouchSelectionMenuRequest *request)
(自 QtWebEngine 6.3)
- wasRecentlyAudibleChanged(bool wasRecentlyAudible)
(自 QtWebEngine 1.3)
- webAuthUxRequested(QWebEngineWebAuthUxRequest *request)
(自 QtWebEngine 6.7)
- windowCloseRequested()
(自 QtWebEngine 1.2)
方法
- void acceptAsNewWindow(QWebEngineNewWindowRequest *request)
(自 QtWebEngine 2.0)
- WebEngineAction action(WebAction action)
- void findText(字符串 subString)
(自 QtWebEngine 1.1)
- void findText(字符串 subString, FindFlags options)
(自 QtWebEngine 1.1)
- void findText(字符串 subString, FindFlags options, variant resultCallback)
(自 QtWebEngine 1.1)
- void fullScreenCancelled()
(自 QtWebEngine 1.1)
- void goBack()
- void goBackOrForward(int offset)
(自 QtWebEngine 1.1)
- void goForward()
- void grantFeaturePermission(url securityOrigin, Feature feature, bool granted)
(since QtWebEngine 1.1)
- void loadHtml(string html, url baseUrl)
- void printToPdf(const string filePath, PrintedPageSizeId pageSizeId, PrintedPageOrientation orientation)
(since QtWebEngine 1.3)
- void printToPdf(variant resultCallback, PrintedPageSizeId pageSizeId, PrintedPageOrientation orientation)
(since QtWebEngine 1.3)
- void reload()
- void reloadAndBypassCache()
(since QtWebEngine 1.1)
- void replaceMisspelledWord(const QString &replacement)
(since QtWebEngine 1.3)
- void runJavaScript(string script, variant callback)
- void save(const QString &filePath, QWebEngineDownloadRequest::SavePageFormat format)
(since QtWebEngine 6.6)
- void setActiveFocusOnPress(bool arg)
(since QtWebEngine 1.2)
- void stop()
- void triggerWebAction(WebAction action)
(since QtWebEngine 1.2)
详细描述
WebEngineView
类型允许 QML 应用程序渲染动态网页内容的区域。它可以与其他 QML 类型(如 TabView)共享屏幕,或在 QML 应用程序中指定填充整个屏幕。
初始化 Web 引擎
为了让 Web 引擎视图可以渲染,必须在应用程序主源文件中使用 QtWebEngineQuick::initialize 来初始化 Web 引擎,如下面的代码示例所示
int main(int argc, char *argv[]) { QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); QtWebEngineQuick::initialize(); QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); }
加载网页
应用程序可以使用 url 属性或 loadHtml 方法来将网页加载到 WebEngineView
中,并在视图的会话历史中进行导航。始终使用 GET 方法来加载 URL。
历史是通过一个由 WebEngineHistory 数据模型表示的,它由 history 属性持有。
以下示例 QML 应用程序使用 url
属性加载一个网页
import QtQuick import QtQuick.Window import QtWebEngine Window { width: 1024 height: 750 visible: true WebEngineView { anchors.fill: parent url: "https://www.qt.io" } }
loading 属性包含当前是否正在加载 HTML 页面。当页面开始、结束或失败加载时,会发出 loadingChanged() 信号。
HTML 页面的标题可以通过 title 属性访问。此外,网页可能指定了一个图标,可以使用 icon 属性访问。通过 zoomFactor 属性可以使用比例因子缩放网页内容。
如果在加载网页时引发证书错误,将发出 certificateError() 信号。通过使用 WebEngineCertificateError 类的方法来处理证书错误。
交互
默认情况下,不同页面的链接将在相同的WebEngineView对象中加载,但网站可能要求它们在新标签页、新窗口或对话框中打开。《newWindowRequested()》信号在请求在单独的Web引擎视图中加载页面时发出。`NewViewDestination`属性描述了新视图应该如何打开。此外,可以使用`WebEngineNewWindowRequest`实用类型在单独的Web引擎视图中加载网页。
可以使用`findText()`方法在网页上搜索字符串,使用由`FindFlags`描述的选项。
可以使用`setActiveFocusOnPress()`方法创建一个在按键时不应获得焦点的UI元素。这在混合UI中可能很有用。
可以使用`focusOnNavigationEnabled`设置在导航操作发生时(如加载或重新加载页面或通过历史导航)使视图自动接收焦点。
当鼠标指针移到链接上时,会发出`linkHovered()`信号,这对应于`mouseover
` DOM事件。
可以使用`triggerWebAction()`方法在网页上执行操作,如选择和编辑内容。可用的操作由`WebAction`属性描述。
当网页背景颜色发生变化时,会发出`backgroundColorChanged()`信号。
用户脚本
在加载页面期间,可以在JavaScript引擎的不同点注入所谓的《i》用户脚本。附加到Web引擎视图的脚本对象由`userScripts`属性持有,并通过使用`WebEngineScript`类型注入。也可以通过使用`runJavaScript()`方法在同一世界(即是加载的站点部分的其他脚本)运行脚本。
可以使用`webChannel`属性在页面渲染的JavaScript上下文中将WebChannel实例作为`qt.webChannelTransport
`公开。
全屏模式
网页可以通过JavaScript API请求以全屏模式加载。《fullScreenRequested()》信号在网页发出请求时发出。可以使用`FullScreenRequest`实用类型切换全屏请求。《fullScreenCancelled`》方法可以用来在窗口系统强制应用程序离开全屏模式时通知浏览器引擎。
配置文件
可以使用`WebEngineProfile`类型将Web引擎视图相互隔离。配置文件包含设置、脚本文档和属于配置文件的所有视图之间共享的已访问链接列表。例如,可以为《i》私人浏览模式创建一个专用配置文件。当前视图的配置文件由`profile`属性持有,当前设置由`settings`属性持有。设置通过使用`WebEngineSettings`类型指定。
平台功能
网页可以请求访问平台功能,例如地理位置或音频和视频捕获设备。当网页请求使用资源时,会发出featurePermissionRequested() 信号。支持的平台功能由Feature 属性描述。如果用户同意授权,则使用grantFeaturePermission() 方法将其设置为granted。
OpenGL纹理上的渲染
当使用QQuickRenderControl 将 Qt Quick 用户界面渲染到 OpenGL 纹理时,WebEngineView 类型无法正确渲染。Web 引擎试图使用由QtWebEngineQuick::initialize 创建的全局 OpenGL 上下文,但没有公共 API 用于访问该上下文以便与 QQuickRenderControl
上下文共享。
为了正确渲染 Web 引擎视图,可以手动创建一个与 QQuickRenderControl
共享的新离屏上下文,并调用非公开函数 qt_gl_set_global_share_context()
,而不是调用 initialize()
。如果设置全局上下文后调用 initialize()
,则它将不执行任何操作。
属性文档
ErrorDomain : 枚举 |
描述各种高级错误类型
常量 | 说明 |
---|---|
WebEngineView.NoErrorDomain | |
WebEngineView.InternalErrorDomain | Qt WebEngine无法解析内容。 |
WebEngineView.ConnectionErrorDomain | 错误是由错误网络连接引起的。 |
WebEngineView.CertificateErrorDomain | 与 SSL/TLS 证书有关的错误。 |
WebEngineView.HttpErrorDomain | 与 HTTP 连接有关的错误。 |
WebEngineView.FtpErrorDomain | 与 FTP 连接有关的错误。 |
WebEngineView.DnsErrorDomain | 与 DNS 连接有关的错误。 |
Feature : 枚举 |
描述用户可能被要求授予或拒绝访问的平台功能访问类别
常量 | 说明 |
---|---|
WebEngineView.Geolocation | 位置硬件或服务。 |
WebEngineView.MediaAudioCapture | 音频捕获设备,例如麦克风。 |
WebEngineView.MediaVideoCapture | 视频设备,例如相机。 |
WebEngineView.MediaAudioVideoCapture | 音频和视频捕获设备。 |
DesktopVideoCapture | 视频输出捕获,即捕获用户的显示。 (自 Qt 5.10 加入) |
DesktopAudioVideoCapture | 音频和视频输出捕获。 (自 Qt 5.10 加入) |
WebEnginView.Notifications | 面向最终用户的 Web 通知。 |
FindFlags : 枚举 |
JavaScriptConsoleMessageLevel : 枚举 |
指示JavaScript控制台消息的严重性
常量 | 说明 |
---|---|
WebEngineView.InfoMessageLevel | 消息仅用于提供信息,可以安全忽略。 |
WebEngineView.WarningMessageLevel | 消息表示可能存在问题需要关注。 |
WebEngineView.ErrorMessageLevel | 消息表示已发生错误。 |
LifecycleState : 枚举 |
该枚举描述了页面的生命周期状态。
常量 | 说明 |
---|---|
WebEngineView.LifecycleState.Active | 正常状态。 |
WebEngineView.LifecycleState.Frozen | CPU 使用率低的状态,此时大多数 HTML 任务来源已暂停。 |
WebEngineView.LifecycleState.Discarded | 资源使用率非常低的状态,整个浏览上下文已被丢弃。 |
此属性自 QtWebEngine 1.10 开始引入。
LoadStatus : 枚举 |
反映页面的加载状态
常量 | 说明 |
---|---|
WebEngineView.LoadStartedStatus | 页面正在加载。 |
WebEngineView.LoadStoppedStatus | 加载页面是通过stop()方法、或Chromium的加载器代码或网络堆栈来停止的。 |
WebEngineView.LoadSucceededStatus | 页面已成功加载,且不在加载。 |
WebEngineView.LoadFailedStatus | 页面加载失败,且不在加载。 |
PrintedPageOrientation : 枚举 |
描述由WebEngineView的文档内容创建的PDF文档的朝向。枚举值映射自并必须匹配QPageLayout::Orientation。
常量 | 说明 |
---|---|
WebEngineView.Portrait | 文档将以纵向方向创建。 |
WebEngineView.Landscape | 文档将以横向方向创建。 |
此属性自 QtWebEngine 1.3 开始引入。
另请参阅WebEngineView::printToPdf()。
PrintedPageSizeId : 枚举 |
此枚举类型列出由Postscript PPD标准定义的可用页面大小。
枚举值映射自并必须匹配QPageSize::PageSizeId。它们还存在于QPagedPaintDevice和QPrinter中。
定义的大小包括:
常量 | 说明 |
---|---|
WebEngineView.A0 | 841 x 1189 mm |
WebEngineView.A1 | 594 x 841 mm |
WebEngineView.A2 | 420 x 594 mm |
WebEngineView.A3 | 297 x 420 mm |
WebEngineView.A4 | 210 x 297 mm,8.26 x 11.69英寸 |
WebEngineView.A5 | 148 x 210 mm |
WebEngineView.A6 | 105 x 148 mm |
WebEngineView.A7 | 74 x 105 mm |
WebEngineView.A8 | 52 x 74 mm |
WebEngineView.A9 | 37 x 52 mm |
WebEngineView.B0 | 1000 x 1414 mm |
WebEngineView.B1 | 707 x 1000 mm |
WebEngineView.B2 | 500 x 707 mm |
WebEngineView.B3 | 353 x 500 mm |
WebEngineView.B4 | 250 x 353 mm |
WebEngineView.B5 | 176 x 250 mm,6.93 x 9.84英寸 |
WebEngineView.B6 | 125 x 176 mm |
WebEngineView.B7 | 88 x 125 mm |
WebEngineView.B8 | 62 x 88 mm |
WebEngineView.B9 | 44 x 62 mm |
WebEngineView.B10 | 31 x 44 mm |
WebEngineView.C5E | 163 x 229 mm |
WebEngineView.Comm10E | 105 x 241 mm,美国标准信封10 |
WebEngineView.DLE | 110 x 220 mm |
WebEngineView的管理员 | 7.5 x 10英寸,190.5 x 254mm |
WebEngineView的 Portfolio | 210 x 330mm |
WebEngineView的帐簿 | 431.8 x 279.4mm |
WebEngineView的法定尺寸 | 8.5 x 14英寸,215.9 x 355.6mm |
WebEngineView的信纸 | 8.5 x 11英寸,215.9 x 279.4mm |
WebEngineView的小报 | 279.4 x 431.8mm |
WebEngineView的自定义 | 未知,或用户定义的大小。 |
WebEngineView的A10 | |
WebEngineView的A3Extra | |
WebEngineView的A4Extra | |
WebEngineView的A4Plus | |
WebEngineView的A4Small | |
WebEngineView的A5Extra | |
WebEngineView的B5Extra | |
WebEngineView的JisB0 | |
WebEngineView的JisB1 | |
WebEngineView的JisB2 | |
WebEngineView的JisB3 | |
WebEngineView的JisB4 | |
WebEngineView的JisB5 | |
WebEngineView的JisB6 | |
WebEngineView的JisB7 | |
WebEngineView的JisB8 | |
WebEngineView的JisB9 | |
WebEngineView的JisB10 | |
WebEngineView的AnsiA | = 信纸 |
WebEngineView的AnsiB | = 帐簿 |
WebEngineView的AnsiC | |
WebEngineView的AnsiD | |
WebEngineView的AnsiE | |
WebEngineView的LegalExtra | |
WebEngineView的LetterExtra | |
WebEngineView的LetterPlus | |
WebEngineView的LetterSmall | |
WebEngineView的TabloidExtra | |
WebEngineView的ArchA | |
WebEngineView的ArchB | |
WebEngineView的ArchC | |
WebEngineView的ArchD | |
WebEngineView的ArchE | |
WebEngineView的Imperial7x9 | |
WebEngineView的Imperial8x10 | |
WebEngineView的Imperial9x11 | |
WebEngineView的Imperial9x12 | |
WebEngineView的Imperial10x11 | |
WebEngineView的Imperial10x13 | |
WebEngineView的Imperial10x14 | |
WebEngineView的Imperial12x11 | |
WebEngineView的Imperial15x11 | |
WebEngineView的ExecutiveStandard | |
WebEngineView的便条 | |
WebEngineView的Quarto | |
WebEngineView的Statement | |
WebEngineView的SuperA | |
WebEngineView的超B | |
WebEngineView的明信片 | |
WebEngineView的双明信片 | |
WebEngineView的Prc16K | |
WebEngineView的Prc32K | |
WebEngineView的Prc32KBig | |
WebEngineView的FanFoldUS | |
WebEngineView的FanFoldGerman | |
WebEngineView的FanFoldGermanLegal | |
WebEngineView的B4信封 | |
WebEngineView的B5信封 | |
WebEngineView的B6信封 | |
WebEngineView的C0信封 | |
WebEngineView的C1信封 | |
WebEngineView的C2信封 | |
WebEngineView的C3信封 | |
WebEngineView的C4信封 | |
WebEngineView的C5信封 | = C5E |
WebEngineView的C6信封 | |
WebEngineView的C65信封 | |
WebEngineView的C7信封 | |
WebEngineView的DL信封 | = DLE |
WebEngineView的9号信封 | |
WebEngineView的10号信封 | = Comm10E |
WebEngineView的11号信封 | |
WebEngineView的12号信封 | |
WebEngineView的14号信封 | |
WebEngineView的Monarch信封 | |
WebEngineView的个人信封 | |
WebEngineView的Chou3信封 | |
WebEngineView的Chou4信封 | |
WebEngineView的邀请信封 | |
WebEngineView的意大利信封 | |
WebEngineView的Kaku2信封 | |
WebEngineView的Kaku3信封 | |
WebEngineView的Prc1信封 | |
WebEngineView的Prc2信封 | |
WebEngineView的Prc3信封 | |
WebEngineView的Prc4信封 | |
WebEngineView的Prc5信封 | |
WebEngineView的Prc6信封 | |
WebEngineView的Prc7信封 | |
WebEngineView的Prc8信封 | |
WebEngineView的Prc9信封 | |
WebEngineView的Prc10信封 | |
WebEngineView的You4信封 | |
WebEngineView的最后页面大小 | = You4信封 |
此属性自 QtWebEngine 1.3 开始引入。
另请参阅WebEngineView::printToPdf()。
渲染进程终止状态 : 枚举 |
描述了渲染进程结束的状态
常量 | 说明 |
---|---|
WebEngineView的正常终止状态 | 渲染进程正常终止。 |
WebEngineView的异常终止状态 | 渲染进程以非零退出状态终止。 |
WebEngineView的崩溃终止状态 | 渲染进程崩溃,例如由于段错误。 |
WebEngineView的终止终止状态 | 渲染进程被终止,例如通过SIGKILL 或任务管理器终止。 |
此属性自QtWebEngine 1.2起引入。
WebAction : 枚举 |
描述可以对网页执行的操作类型
常量 | 说明 |
---|---|
WebEngineView的无Web操作 | 不触发任何操作。 |
WebEngineView的后退 | 在浏览过的链接的历史记录中后退。 |
WebEngineView的前进 | 在浏览过的链接的历史记录中前进。 |
WebEngineView的停止 | 停止加载当前页面。 |
WebEngineView.Reload | 重新加载当前页面。 |
WebEngineView.ReloadAndBypassCache | 重新加载当前页面,但不要使用任何本地缓存。 |
WebEngineView.Cut | 将当前选中的内容剪切到剪贴板。 |
WebEngineView.Copy | 将当前选中的内容复制到剪贴板。 |
WebEngineView.Paste | 从剪贴板粘贴内容。 |
WebEngineView.Undo | 撤销上一个编辑操作。 |
WebEngineView.Redo | 重做上一个编辑操作。 |
WebEngineView.SelectAll | 选择所有内容。此操作仅在页面内容获得焦点时可用。可以通过JavaScript window.focus() 调用强制获取焦点,或者启用 focusOnNavigationEnabled 设置以获得自动焦点。 |
WebEngineView.PasteAndMatchStyle | 以当前格式粘贴剪贴板内容。 |
WebEngineView.OpenLinkInThisWindow | 在当前窗口中打开当前链接。(自 Qt 5.6 开始添加) |
WebEngineView.OpenLinkInNewWindow | 在新窗口中打开当前链接。需要处理 newWindowRequested() 信号。(自 Qt 5.6 开始添加) |
WebEngineView.OpenLinkInNewTab | 在新标签页中打开当前链接。需要处理 newWindowRequested() 信号。(自 Qt 5.6 开始添加) |
WebEngineView.CopyLinkToClipboard | 将当前链接复制到剪贴板。(自 Qt 5.6 开始添加) |
WebEngineView.CopyImageToClipboard | 将点击的图片复制到剪贴板。(自 Qt 5.6 开始添加) |
WebEngineView.CopyImageUrlToClipboard | 将点击的图片的 URL 复制到剪贴板。(自 Qt 5.6 开始添加) |
WebEngineView.CopyMediaUrlToClipboard | 将悬停的音频或视频的 URL 复制到剪贴板。(自 Qt 5.6 开始添加) |
WebEngineView.ToggleMediaControls | 在显示和隐藏悬停的音频或视频元素的控件之间切换。(自 Qt 5.6 开始添加) |
WebEngineView.ToggleMediaLoop | 切换悬停的音频或视频在完成时是否循环播放。(自 Qt 5.6 开始添加) |
WebEngineView.ToggleMediaPlayPause | 切换悬停的音频或视频元素的播放/暂停状态。(自 Qt 5.6 开始添加) |
WebEngineView.ToggleMediaMute | 静音或取消静音悬停的音频或视频元素。(自 Qt 5.6 开始添加) |
WebEngineView.DownloadLinkToDisk | 将当前链接下载到磁盘。要实现下载操作,连接到 WebEngineProfile.downloadRequested 信号。(自 Qt 5.6 开始添加) |
WebEngineView.DownloadImageToDisk | 将高亮显示的图片下载到磁盘。(自 Qt 5.6 开始添加) |
WebEngineView.DownloadMediaToDisk | 将悬停的音频或视频下载到磁盘。(自 Qt 5.6 开始添加) |
WebEngineView.InspectElement | 触发任何附加的 Web 检查器来检查高亮显示的元素。(自 Qt 5.6 开始添加) |
WebEngineView.ExitFullScreen | 退出全屏模式。(自 Qt 5.6 开始添加) |
WebEngineView.SavePage | 将当前网页保存到磁盘。(自 Qt 5.7 开始添加) |
WebEngineView.ViewSource | 在新标签页中显示当前页面的源代码。需要处理 newWindowRequested() 信号。(自 Qt 5.8 开始添加) |
WebEngineView.ToggleBold | 切换选定内容或光标位置的加粗。需要 contenteditable="true" 。(自 Qt 5.10 开始添加) |
WebEngineView.ToggleItalic | 切换选定内容或光标位置的斜体。需要 contenteditable="true" 。(自 Qt 5.10 开始添加) |
WebEngineView.ToggleUnderline | 切换选定内容或光标位置的下划线。需要 contenteditable="true" 。(自 Qt 5.10 开始添加) |
WebEngineView.ToggleStrikethrough | 切换选定内容或光标位置的删除线。需要 contenteditable="true" 。(自 Qt 5.10 开始添加) |
WebEngineView.AlignLeft | 将包含选定内容或光标的行对齐到左对齐。需要 contenteditable="true" 。(自 Qt 5.10 开始添加) |
WebEngineView.AlignCenter | 将选中的行或光标行的文本居中对齐。需要contenteditable="true" 属性。(自Qt 5.10添加) |
WebEngineView.AlignRight | 将选中的行或光标行的文本右对齐。需要contenteditable="true" 属性。(自Qt 5.10添加) |
WebEngineView.AlignJustified | 拉伸选中的行或光标行的文本,使每行的宽度相等。需要contenteditable="true" 属性。(自Qt 5.10添加) |
WebEngineView.Indent | 将选中的行或光标行的文本缩进。需要contenteditable="true" 属性。(自Qt 5.10添加) |
WebEngineView.Outdent | 将选中的行或光标行的文本减少缩进。需要contenteditable="true" 属性。(自Qt 5.10添加) |
WebEngineView.InsertOrderedList | 在当前光标位置插入有序列表,删除当前选中文本。需要contenteditable="true" 属性。(自Qt 5.10添加) |
WebEngineView.InsertUnorderedList | 在当前光标位置插入无序列表,删除当前选中文本。需要contenteditable="true" 属性。(自Qt 5.10添加) |
WebEngineView.ChangeTextDirectionLTR | 将焦点输入元素的文本方向改为从左到右。(自Qt 6.6添加) |
WebEngineView.ChangeTextDirectionRTL | 将焦点输入元素的文本方向改为从右到左。(自Qt 6.6添加) |
此属性自QtWebEngine 1.2起引入。
activeFocusOnPress : bool |
指定在按击时视图是否应获得激活焦点。默认值是true
。
此属性自QtWebEngine 1.2起引入。
audioMuted : bool |
backgroundColor : color |
更改WebEngineView背景颜色,在文档主体之后。可以设置为"transparent"
或半透明颜色,以便透视文档或匹配混合应用中的网络内容,防止加载期间出现白色闪烁。
默认值是白色。
此属性自QtWebEngine 1.2起引入。
canGoBack : bool |
如果存在以前的会话历史记录条目,则返回true
,否则返回false
。
canGoForward : bool |
如果存在后续会话历史记录条目,则返回true
,否则返回false
。
contentsSize : size |
页面内容的大小。
此属性自 QtWebEngine 1.3 开始引入。
devToolsId : WebEngineView |
与此页面相关联的开发者工具宿主的ID。
如果启用了远程调试(见Qt WebEngine开发者工具),则可以使用ID来构建连接到开发者工具websocket的URL:ws://localhost:<debugggin-port>/devtools/page/<id>
。可以使用websocket与页面进行交互,使用的是DevTools协议。
此属性是在QtWebEngine 6.6中引入的。
devToolsView : WebEngineView |
history : WebEngineHistory |
icon : url |
访问当前显示的网站图标的内部URL,也称为favicon或快捷图标。此只读URL对应于在移动浏览器应用程序中用于在设备主屏幕上表示书签页的图像。
以下示例使用 icon
属性构建一个 Image
组件
Image { id: appIcon sourceSize: Qt.size(32, 32) source: webView.icon != "" ? webView.icon : "fallbackFavicon.png"; // ... }
指定 Image::sourceSize 属性会通知 Qt WebEngine 的 favicon 提供程序所需的尺寸,并将图标调整到该尺寸。如果未指定 Image::sourceSize 属性,则提供程序提供具有最大可用分辨率的图标。
inspectedView : WebEngineView |
当前视图正在检查的视图,如果有。设置它将导航到包含设置视图的开发工具的内部URL。
建议在开发工具不可见时取消设置此属性;否则,检查的某些 debug 信息可能会出现在 WebEngineView 中。
此属性是在 QtWebEngine 1.7 中引入的。
参见devToolsView。
isFullScreen : bool |
如果 web 视图处于全屏模式,则返回 true
,否则返回 false
。
此属性是在 QtWebEngine 1.1 中引入的。
lifecycleState : LifecycleState |
页面当前的周期状态。
设置器强制执行以下限制
- 必须保持可见页处于
Active
状态。 - 如果页面正在通过 devToolsView 进行检查,则两个页面都必须保持
Active
状态。 - 处于
Discarded
状态的页面只能转换到Active
状态。这将导致页面重新加载。
这些是周期状态的唯一硬限制,但还可参阅 recommendedState 以了解建议的软限制。
此属性自 QtWebEngine 1.10 开始引入。
loadProgress : int |
已加载的页面的数据量,以 0 到 100 的整数值表示的百分比。
loading : bool |
如果当前HTML页面正在加载,则返回 true
,否则返回 false
。
profile : WebEngineProfile |
recentlyAudible : bool |
recommendedState : LifecycleState |
页面生命周期状态的推荐限制。
将生命周期状态设置为低于推荐状态可能会导致副作用,例如停止背景音频播放或丢失HTML表单输入。但将生命周期状态设置为更高的资源状态是完全安全的。
此属性自 QtWebEngine 1.10 开始引入。
renderProcessPid : qint64 |
返回当前页面主框架分配的渲染进程的进程ID(PID)。
如果没有可用的渲染进程,则返回 0
。
此属性自QtWebEngine 1.11版本开始引入。
scrollPosition : point |
页面内容的滚动位置。
此属性自 QtWebEngine 1.3 开始引入。
settings : WebEngineSettings |
title : string |
当前显示的HTML页面的标题。这是一个只读值,反映<title>
标签的内容。
touchHandleDelegate : Component |
touchHandleDelegate 提供一个模板,定义视图在需要触摸选择处理时实例化的视觉触摸句柄。
句柄的位置、不透明度和可见性将自动更新。代理应该是一个 QML Item 或者任何继承它的 QML 类型。
注意: 如果没有设置 QML Item,将显示默认触摸句柄。
以下代码使用自定义触摸句柄代理
WebEngineView { // ... touchHandleDelegate: Rectangle { color: "red" } // ... }
触摸句柄也可以动态切换
Component { id: circleTouchHandle Rectangle { color: "blue" radius: 50 } } function showDefaultHandle(isDefault) { if (isDefault) webEngineView.touchHandleDelegate = circleTouchHandle else webEngineView.touchHandleDelegate = null }
注意: 如果没有提供代理,将出现 Chromium 的默认触摸句柄。
此属性自QtWebEngine 6.4版本开始引入。
userScripts : WebEngineScriptCollection |
webChannel : QQmlWebChannel |
该视图使用的Web通道实例。此通道在Chromium IPC上自动使用内部QtWebEngine传输机制,并在它渲染的页面的JavaScript上下文中公开为qt.webChannelTransport
。此传输对象在用Qt WebChannel JavaScript API实例化QWebChannel的JavaScript对应物时使用。
注意:视图不对分配的webChannel对象负责。
此属性是在 QtWebEngine 1.1 中引入的。
webChannelWorld : int |
该视图使用的Web通道实例安装的JavaScript世界。该世界必须是介于0
和256
之间的数字。
此属性自 QtWebEngine 1.3 开始引入。
zoomFactor : real |
视图的缩放因子。有效值在从0.25
到5.0
的范围内。默认因子是1.0
。
此属性是在 QtWebEngine 1.1 中引入的。
信号文档
|
当activeFocusOnPress的值改变时,会发出此信号。它指定视图在按下时是否应获得活动焦点。
注意:相应的事件处理程序是onActiveFocusOnPressChanged
。
此信号在QtWebEngine 1.2中引入。
|
当muted的值改变时,会发出此信号。此值使用audioMuted属性指定。
注意:不要与特定HTML5音频/视频元素的静音混淆。
注意:相应的事件处理程序是onAudioMutedChanged
。
此信号在QtWebEngine 1.3中引入。
另请参阅audioMuted 和 recentlyAudibleChanged。
|
请求认证对话框时,会发出此信号。
request可以通过使用AuthenticationDialogRequest类型的AuthenticationDialogRequest处理方法。
注意:信号处理程序需要调用request.accepted = true
以防止显示默认对话框。确保随后调用AuthenticationDialogRequest::dialogAccept()或AuthenticationDialogRequest::dialogReject()。
注意:相应的事件处理程序是onAuthenticationDialogRequested
。
此信号在QtWebEngine 1.4中引入。
|
当Web引擎视图的背景色改变时,会发出此信号。
注意:相应的事件处理程序是onBackgroundColorChanged
。
此信号在QtWebEngine 1.2中引入。
|
当加载给定请求时抛出无效的证书错误error时,会发出此信号。
可以通过使用WebEngineCertificateError类型的处理方法来处理证书错误。
注意:相应的事件处理程序是onCertificateError
。
此信号在QtWebEngine 1.1中引入。
|
当请求颜色选择对话框时,会发出此信号。
可以使用ColorDialogRequest类型的方法处理request。
注意:信号处理器需要调用request.accepted = true
以防止显示默认对话框。请确保随后调用ColorDialogRequest::dialogAccept()或ColorDialogRequest::dialogReject()。
注意:相应的处理方法是onColorDialogRequested
。
此信号在QtWebEngine 1.4中引入。
|
在请求上下文菜单时,会发出此信号。
可以使用ContextMenuRequest类型的属性处理request。
注意:信号处理器需要调用request.accepted = true
以防止显示默认上下文菜单。
注意:相应的处理方法是onContextMenuRequested
。
此信号在QtWebEngine 1.4中引入。
|
当由securityOrigin标识的网站请求使用由feature标识的资源或设备时,会发出此信号。
注意:相应的处理方法是onFeaturePermissionRequested
。
此信号在QtWebEngine 1.1中引入。
另请参阅:grantFeaturePermission()。
|
当请求文件选择对话框时,会发出此信号。
可以使用FileDialogRequest类型的方法处理request。
注意:信号处理器需要调用request.accepted = true
以防止显示默认对话框。请确保随后调用FileDialogRequest::dialogAccept()或FileDialogRequest::dialogReject()。
注意:相应的处理方法是onFileDialogRequested
。
此信号在QtWebEngine 1.4中引入。
|
在完成页面中的字符串搜索时,会发出此信号。result是字符串搜索的结果。
注意:相应的处理方法是onFindTextFinished
。
此信号在QtWebEngine 1.10中引入。
另请参阅:findText()和FindTextResult。
|
当网页通过JavaScript API请求全屏模式时,会发出此信号。
注意:相应的处理方法是onFullScreenRequested
。
此信号在QtWebEngine 1.1中引入。
另请参阅:isFullScreen。
当文档需要改变页面位置和尺寸以便用frameGeometry时,会发出此信号。这可能通过JavaScript来实现。
虽然frameGeometry包含,但geometry不包含边框边界的尺寸。
注意:QML窗口的几何相关属性预期的尺寸不包括窗口装饰。您必须使用geometry来正确处理此信号。
onGeometryChangeRequested: { window.x = geometry.x window.y = geometry.y window.width = geometry.width window.height = geometry.height }
注意:对应的事件处理器是onGeometryChangeRequested
。
此信号自QtWebEngine 1.7开始引入。
|
当请求JavaScript对话框时,会发出此信号。
可以使用JavaScriptDialogRequest类型的各种方法来处理request。
注意:信号处理程序需要调用request.accepted = true
以防止显示默认对话框。请确保调用JavaScriptDialogRequest::dialogAccept()或JavaScriptDialogRequest::dialogReject()。
注意:对应的事件处理器是onJavaScriptDialogRequested
。
此信号在QtWebEngine 1.4中引入。
linkHovered(url hoveredUrl) |
在鼠标驱动的界面中,当鼠标指针穿过一个链接(对应于mouseover
DOM事件)时,会发出此信号。该事件也可能在触摸界面上对于未通过preventDefault()
取消的mouseover
事件发生。hoveredUrl提供了链接的位置。
注意:对应的事件处理器是onLinkHovered
。
loadingChanged(WebEngineLoadingInfo loadingInfo) |
当开始、结束或失败页面加载时,会发出此信号。
使用onLoadingChanged
处理信号时,在loadingInfo指定的WebEngineLoadingInfo上可以找到各种只读参数。
注意:对应的事件处理器是onLoadingChanged
。
另请参阅loading,LoadStatus和ErrorDomain。
navigationRequested(WebEngineNavigationRequest request) |
在发出导航请求request时,会发出此信号。
注意:对应的事件处理器是onNavigationRequested
。
|
当向独立网络引擎视图加载页面请求发出信号时,将发出此信号。这可能是由于当前页面通过JavaScript调用 window.open
明确请求,也可能是由于用户在按住Shift、Ctrl或内置组合键的同时点击链接,导致页面在新窗口中打开。
通过在目标视图上调用 acceptAsNewWindow() 来处理此信号。如果未处理此信号,则请求将失败。
示例实现
QtObject { id: windowParent // Create the initial browsing windows and open the startup page. Component.onCompleted: { var firstWindow = windowComponent.createObject(windowParent); firstWindow.webView.loadHtml('<input type="button" value="Click!" onclick="window.open("http://qt.io")">'); } property Component windowComponent: Window { // Destroy on close to release the Window's QML resources. // Because it was created with a parent, it won't be garbage-collected. onClosing: destroy() visible: true property WebEngineView webView: webView_ WebEngineView { id: webView_ anchors.fill: parent // Handle the signal. Dynamically create the window and // use its WebEngineView as the destination of our request. onNewWindowRequested: function(request) { var newWindow = windowComponent.createObject(windowParent); newWindow.webView.acceptAsNewWindow(request); } } } }
注意: 相应的处理程序是 onNewWindowRequested
。
此信号是在QtWebEngine 2.0中引入的。
另请参阅 WebEngineNewWindowRequest 和 WebEngine Quick Nano Browser。
将网页打印到PDF文件后,将发出此信号。filePath 将包含请求创建文件的路径,而 success 如果文件成功创建则将是 true
,否则将是 false
。
注意: 相应的处理程序是 onPdfPrintingFinished
。
此信号是在QtWebEngine 1.5中引入的。
另请参阅 printToPdf。
|
当调用JavaScript window.print()
方法或用户按下PDF查看器插件中的打印按钮时,将发出此信号。通常,信号处理程序只需简单地调用 printToPdf()。
注意: 相应的处理程序是 onPrintRequested
。
此信号是在QtWebEngine 1.8中引入的。
另请参阅 printToPdf。
|
当页面可听状态(由 recentlyAudible 指定)由于音频播放或停止而更改时,将发出此信号。
注意: 当 audioMuted 属性更改时,也会发出信号。此外,如果音频已暂停,则从音频暂停的那一刻起,此信号会大约延迟 两秒 后发出。
如果网页包含两个依次启动的视频,此信号仅在第一个视频生成声音时发出一次。两个视频都停止后,在最后生成声音时发出信号。这意味着在网页中无论音频流有多少,此信号都会在产生任何类型的声音时以及当完全无声时发出。
也可能会有虚假信号发射的情况。例如,当停止声音时,此信号首先以值为 true
发出,然后以值为 false
发出。此外,当音频开始播放时,此信号会以值为 true
两度发出。
注意: 相应的处理程序是 onRecentlyAudibleChanged
。
此信号在QtWebEngine 1.3中引入。
另请参阅 recentlyAudible。
|
当网页通过发出 registerProtocolHandler 请求来尝试注册自定义协议时,将发出此信号。
注意:相应的处理器是 onRegisterProtocolHandlerRequested
。
此信号自QtWebEngine 1.7开始引入。
|
如果没有可用的渲染进程,则返回 0
。当页面的底层渲染进程的 pid(进程ID)发生变化时,发出此信号。
注意:相应的处理器是 onRenderProcessPidChanged
。
此信号从 QtWebEngine 1.11 以来投入使用。
另请参阅renderProcessPid。
|
当渲染进程以非零退出状态终止时,发出此信号。terminationStatus 是进程的终止状态,exitCode 是进程终止的状态代码。
注意:相应的处理器是 onRenderProcessTerminated
。
此信号在QtWebEngine 1.2中引入。
|
当请求 SSL 客户端证书的网站,并在系统客户端证书存储中找到一个或多个证书时,发出此信号。
处理此信号是异步的,加载将等待直到选择证书,或者 clientCertificateSelection 的最后一个副本被销毁。
如果没有处理此信号,clientCertificateSelection 将自动销毁,并继续加载而无需客户端证书。
注意:相应的处理器是 onSelectClientCertificate
。
此信号从 QtWebEngine 1.9 以来投入使用。
|
当网页发送 request 以在指定位置显示工具提示时,发出此信号。
注意:信号处理器需要调用 request.accepted = true
以防止出现默认工具提示。
注意:相应的处理器是 onTooltipRequested
。
此信号在QtWebEngine 1.10中引入。
另请参阅TooltipRequest。
|
当在指定位置请求触摸选择菜单时,发出此信号。
可以使用 TouchSelectionMenuRequest 类的方法来处理 request。
注意:信号处理器需要调用 request.accepted = true
以防止出现默认触摸选择菜单。
注意:相应的处理器是 onTouchSelectionMenuRequested
。
此信号从 QtWebEngine 6.3 以来投入使用。
|
当由于音频播放或停止,导致页面的可听状态(由 wasRecentlyAudible 指定)发生变化时,发出此信号。
注意:当调用 setAudioMuted 方法时,也会发出此信号。
注意:相应的处理器是 onWasRecentlyAudibleChanged
。
此信号在QtWebEngine 1.3中引入。
|
当WebAuth认证器在认证过程中需要用户交互时,会发出此信号。这些请求通过向用户显示对话框来处理。
request 包含完成WebAuth UX请求所需的信息和API。
注意:相应的处理器为 onWebAuthUxRequested
。
此信号在QtWebEngine 6.7中引入。
|
当页面请求关闭Web浏览器窗口时,会发出此信号,例如通过JavaScript window.close()
调用。
注意:相应的处理器为 onWindowCloseRequested
。
此信号在QtWebEngine 1.2中引入。
方法文档
|
WebEngineAction action(WebAction action) |
为指定的 WebAction action 返回一个 WebEngineAction。 WebEngineView 也会负责实现该操作,因此当触发相应的操作时,将在视图中执行。
var copyAction = webEngineView.action(WebEngineView.Copy);
另请参阅:WebEngineAction
|
在页面中查找指定的字符串,subString。当字符串搜索完成时,发出 findTextFinished() 信号。
要清除搜索高亮,只需传递一个空字符串。
此方法在QtWebEngine 1.1中引入。
另请参阅:findTextFinished
|
使用给定的 options 在页面中查找指定的字符串,subString。当字符串搜索完成时,发出 findTextFinished() 信号。
要清除搜索高亮,只需传递一个空字符串。
findText("Qt", WebEngineView.FindBackward | WebEngineView.FindCaseSensitively);
此方法在QtWebEngine 1.1中引入。
另请参阅:findTextFinished
使用给定的 options 在页面中查找指定的字符串,subString。当字符串搜索完成时,发出 findTextFinished() 信号。
要清除搜索高亮,只需传递一个空字符串。
resultCallback 必须接受一个整数参数。它将用找到的subString出现的次数来调用。
findText("Qt", WebEngineView.FindCaseSensitively, function(matchCount) { if (matchCount > 0) console.log("'Qt' tokens found:", matchCount); });
此方法在QtWebEngine 1.1中引入。
另请参阅:findTextFinished
|
立即将 isFullScreen
属性设置为 false
。它可以用来通知浏览器引擎当窗口系统强制应用程序退出全屏模式。
ApplicationWindow { onVisibilityChanged: { if (webEngineView.isFullScreen && visibility != Window.FullScreen) webEngineView.fullScreenCancelled() } WebEngineView { id: webEngineView // ... } }
此方法在QtWebEngine 1.1中引入。
另请参阅:isFullScreen 和 fullScreenRequested
void goBack() |
在浏览器会话历史记录中尽可能后退。此功能等同于window.history.back()
DOM 方法。
另请参阅canGoBack。
|
void goForward() |
在可能的情况下,在浏览器会话历史记录中前进。此功能等同于window.history.forward()
DOM 方法。
根据 granted 设置或清除权限,以允许由 securityOrigin 标识的网站使用 feature。
此方法在QtWebEngine 1.1中引入。
将指定的 html 作为网页的内容加载。
此方法提供了对 url
属性的更低级别替代,该属性通过 URL 引用HTML页面。
baseUrl 是可选的,用于解决文档中的相对URL,例如引用的图像或样式表。例如,如果 html 从 http://www.example.com/documents/overview.html
获取,它是基础URL,那么使用相对URL引用的图像,diagram.png
,应位于 http://www.example.com/documents/diagram.png
。
另请参阅url。
|
将 WebEngineView 的当前内容打印到PDF文档并存储在 filePath 下。文档的大小将根据 pageSizeId 的值确定,其方向将通过 orientation 确定。
此方法向打印网页到PDF发出异步请求并立即返回。要了解请求的结果,请连接到信号 pdfPrintingFinished。
如果省略 pageSizeId,它默认为 A4
。如果省略 orientation,它默认为 Portrait
。
此方法在 QtWebEngine 1.3 中引入。
另请参阅pdfPrintingFinished。
|
将WebEngineView的当前内容打印成PDF文档,并以字节数组的形式返回。文档的大小将由pageSizeId的值决定,其方向将使用orientation确定。
必须使用一个字符串参数的resultCallback。如果打印成功,该字符串将包含文档数据;否则为空字符串。
如果省略 pageSizeId,它默认为 A4
。如果省略 orientation,它默认为 Portrait
。
此方法在 QtWebEngine 1.3 中引入。
void reload() |
重新加载当前页面。此函数等同于DOM方法window.location.reload()
。
另请参阅reloadAndBypassCache。
|
|
将当前拼写错误的单词替换为replacement。
此方法在 QtWebEngine 1.3 中引入。
在网页的内容中执行指定的script。
callback参数是可选的。如果提供了回调函数,则在脚本执行完毕后会调用它。
runJavaScript("document.title", function(result) { console.log(result); });
JavaScript只能以纯数据作为结果值返回。支持的数据类型包括所有JSON数据类型以及,例如,Date
和ArrayBuffer
。不支持的数据类型包括,例如,Function
和Promise
。
脚本将在与加载站点的其他脚本相同的world中运行。
注意:不要在回调函数中执行长时间的操作,因为这可能会阻塞网页的渲染。
有关注入脚本的更多信息,请参阅脚本注入。有关注入脚本的另一种方法,请参阅WebEngineView::userScripts。
|
将当前网页保存到磁盘。
网页以指定format保存到filePath。
这是以下操作的快捷方式
- 触发保存网页动作。
- 接受下一个下载项,并设置指定的文件路径和保存格式。
此函数对网页发出异步下载请求并立即返回。
此方法是在QtWebEngine 6.6中引入的。
|
如果arg为true
,则将活动焦点设置为点击的Web引擎视图。通过将其设置为false
,可以使用Web引擎视图创建一个不应获得焦点的UI元素。这在有混合UI的情况下可能很有用。
此方法是在QtWebEngine 1.2中引入的。
另请参阅 activeFocusOnPress、activeFocusOnPressChanged 和 WebEngineSettings::focusOnNavigationEnabled。
void stop() |
停止加载当前页面。
|
© 2024 The Qt Company Ltd. 本文档中包含的贡献的版权归其各自的所有者所有。本提供的文档是根据自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 的条款授权的。Qt 和相应的标志是芬兰和/或其他地区 The Qt Company Ltd. 的商标。所有其他商标均属其各自所有者所有。