QWebEngineView 类提供用于查看和编辑 Web 文档的 Widget。 更多...
头: | #include <QWebEngineView> |
CMake: |
find_package(Qt6 COMPONENTS WebEngineWidgets REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineWidgets) |
qmake: | QT += webenginewidgets |
Since: | Qt 5.4 |
继承: | QWidget |
|
|
QWebEngineView (QWidget * parent = nullptr) | |
virtual | ~QWebEngineView () |
QMenu * | createStandardContextMenu () |
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 |
QWebEngineContextMenuRequest * | lastContextMenuRequest () const |
void | load (const QUrl & url ) |
void | load (const QWebEngineHttpRequest & request ) |
QWebEnginePage * | page () const |
QAction * | pageAction (QWebEnginePage::WebAction action ) const |
void | print (QPrinter * printer ) |
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 = {}) |
QString | selectedText () const |
void | setContent (const QByteArray & data , const QString & mimeType = QString(), const QUrl & baseUrl = QUrl()) |
void | setHtml (const QString & html , const QUrl & baseUrl = QUrl()) |
void | setPage (QWebEnginePage * page ) |
void | setUrl (const QUrl & url ) |
void | setZoomFactor (qreal factor ) |
QWebEngineSettings * | settings () const |
QString | title () const |
void | triggerPageAction (QWebEnginePage::WebAction action , bool checked = false) |
QUrl | url () const |
qreal | zoomFactor () const |
virtual QSize | sizeHint () const override |
void | back () |
void | forward () |
void | reload () |
void | stop () |
void | iconChanged (const QIcon & icon ) |
void | iconUrlChanged (const QUrl & url ) |
void | loadFinished (bool ok ) |
void | loadProgress (int progress ) |
void | loadStarted () |
void | pdfPrintingFinished (const QString & filePath , bool success ) |
void | printFinished (bool success ) |
void | printRequested () |
void | renderProcessTerminated (QWebEnginePage::RenderProcessTerminationStatus terminationStatus , int exitCode ) |
void | selectionChanged () |
void | titleChanged (const QString & title ) |
void | urlChanged (const QUrl & url ) |
QWebEngineView * | forPage (const QWebEnginePage * page ) |
virtual QWebEngineView * | createWindow (QWebEnginePage::WebWindowType type ) |
virtual void | closeEvent (QCloseEvent * event ) override |
virtual void | contextMenuEvent (QContextMenuEvent * event ) override |
virtual void | dragEnterEvent (QDragEnterEvent * e ) override |
virtual void | dragLeaveEvent (QDragLeaveEvent * e ) override |
virtual void | dragMoveEvent (QDragMoveEvent * e ) override |
virtual void | dropEvent (QDropEvent * e ) override |
virtual bool | event (QEvent * ev ) override |
virtual void | hideEvent (QHideEvent * event ) override |
virtual void | showEvent (QShowEvent * event ) override |
A Web 视图 是 Qt WebEngine Web 浏览模块的主要 Widget 组件。可以把它用于各种应用程序以实时显示来自 Internet 的 Web 内容。
A 网站 可以被加载到 Web 视图采用 load () 函数。GET 方法始终被用于加载 URL。
像所有 Qt Widget, show () 函数必须被援引以显示 Web 视图。以下代码片段阐明了这:
QWebEngineView *view = new QWebEngineView(parent); view->load(QUrl("http://qt-project.org/")); view->show();
另外, setUrl () 可以用于加载网站。若有随时可用的 HTML 内容,可以使用 setHtml () 代替。
loadStarted
() 信号被发射当视图开始加载和
loadProgress
() 信号被发射每当 Web 视图元素完成加载时,如:嵌入式图像或脚本。
loadFinished
() 信号被发射当视图已完全加载。其自变量为
true
or
false
,指示加载是成功或失败。
page () 函数返回指针指向 web page 对象。QWebEngineView 包含 QWebEnginePage ,进而允许访问 QWebEngineHistory 在页面的上下文中。
可以访问 HTML 文档的标题采用 title () 特性。另外,网站可以指定图标,可以访问该图标使用 icon () 或其 URL 使用 iconUrl () 特性。若标题或图标改变,相应 titleChanged (), iconChanged () 和 iconUrlChanged () 信号会被发射。 zoomFactor () 特性使能够按比例因子缩放网页内容。
Widget 提供订制手边元素,并包括有用浏览器动作的上下文菜单。对于自定义上下文菜单,或把动作嵌入菜单或工具栏,单个动作是可用的通过 pageAction ()。Web 视图维护返回动作的状态,但允许修改动作特性,如 text or icon 。动作语义也可以被直接触发,透过 triggerPageAction ().
若希望为允许用户打开新窗口 (譬如:弹出窗口) 的网站提供支持,可以子类 QWebEngineView 并重实现 createWindow () 函数。
另请参阅 WebEngine Widgets 简单浏览器范例 , WebEngine 内容操纵范例 ,和 WebEngine Markdown 编辑器范例 .
[read-only]
hasSelection
: const
bool
此特性保持此页面是否包含选定内容。
默认情况下,此特性为
false
.
访问函数:
bool | hasSelection () const |
另请参阅 selectionChanged ().
[read-only, since 5.7]
icon
: const
QIcon
此特性保持关联目前查看页面的图标。
默认情况下,此特性包含 null 图标。
该特性在 Qt 5.7 引入。
访问函数:
QIcon | icon () const |
通知程序信号:
void | iconChanged (const QIcon & icon ) |
另请参阅 iconChanged (), iconUrl (),和 iconUrlChanged ().
[read-only]
iconUrl
: const
QUrl
此特性保持关联目前查看页面的图标 URL。
默认情况下,此特性包含空 URL。
访问函数:
QUrl | iconUrl () const |
通知程序信号:
void | iconUrlChanged (const QUrl & url ) |
另请参阅 iconUrlChanged (), icon (),和 iconChanged ().
[read-only]
selectedText
: const
QString
此特性保持当前选中的文本。
默认情况下,此特性包含空字符串。
访问函数:
QString | selectedText () const |
另请参阅 findText () 和 selectionChanged ().
[read-only]
title
: const
QString
此特性保持页面的标题,作为定义通过 HTML
<title>
元素。
相当于 QWebEnginePage::title ().
访问函数:
QString | title () const |
另请参阅 titleChanged ().
此特性保持目前查看网页的 URL。
设置此特性清零视图并加载 URL。
默认情况下,此特性包含空的无效 URL。
访问函数:
QUrl | url () const |
void | setUrl (const QUrl & url ) |
另请参阅 load () 和 urlChanged ().
此特性保持视图缩放因子。
有效值范围从
0.25
to
5.0
。默认因子为
1.0
.
访问函数:
qreal | zoomFactor () const |
void | setZoomFactor (qreal factor ) |
构造空 Web 视图采用父级 parent .
另请参阅 load ().
[slot]
void
QWebEngineView::
back
()
方便槽,用于把先前文档加载进由导航链接构建的文档列表。什么都不做,若没有先前文档。
相当于:
view->page()->triggerAction(QWebEnginePage::Back);
另请参阅 forward () 和 pageAction ().
[slot]
void
QWebEngineView::
forward
()
方便槽,用于把下一文档加载进由导航链接构建的文档列表。什么都不做,若没有下一文档。
相当于:
view->page()->triggerAction(QWebEnginePage::Forward);
另请参阅 back () 和 pageAction ().
[signal, since 5.7]
void
QWebEngineView::
iconChanged
(const
QIcon
&
icon
)
此信号被发射当视图关联的 favicon 图标改变时。新图标的指定通过否则否则 icon .
注意: 通知程序信号对于特性 icon .
该函数在 Qt 5.7 引入。
另请参阅 icon (), iconUrl (),和 iconUrlChanged ().
[signal]
void
QWebEngineView::
iconUrlChanged
(const
QUrl
&
url
)
此信号被发射当视图关联的 favicon 图标 URL 改变时。新 URL 的指定通过 url .
注意: 通知程序信号对于特性 iconUrl .
另请参阅 iconUrl (), icon (),和 iconChanged ().
[signal]
void
QWebEngineView::
loadFinished
(
bool
ok
)
此信号被发射当页面的加载已完成时。 ok 将指示加载成功 (或发生错误)。
另请参阅 loadStarted ().
[signal]
void
QWebEngineView::
loadProgress
(
int
progress
)
此信号被发射每当 Web 视图中的某个元素加载完成 (如:嵌入式图像或脚本) 时。因此,它跟踪加载 Web 视图的集体进度。
当前值被提供由 progress 并缩放到 0 - 100,其是默认范围为 QProgressBar .
另请参阅 loadStarted () 和 loadFinished ().
[signal]
void
QWebEngineView::
loadStarted
()
此信号被发射当页面的新加载开始时。
另请参阅 loadProgress () 和 loadFinished ().
[signal, since 6.2]
void
QWebEngineView::
pdfPrintingFinished
(const
QString
&
filePath
,
bool
success
)
此信号被发射,当把网页打印成 PDF 文件完成时。
filePath
将包含请求创建的文件路径,且
success
将是
true
若成功创建文件且
false
否则。
该函数在 Qt 6.2 引入。
另请参阅 printToPdf ().
[signal, since 6.2]
void
QWebEngineView::
printFinished
(
bool
success
)
此信号被发射,当打印时请求采用
print
() 已完成。参数
success
is
true
对于成功或
false
对于故障。
该函数在 Qt 6.2 引入。
另请参阅 print ().
[signal, since 6.2]
void
QWebEngineView::
printRequested
()
此信号被发射当 JavaScript
window.print()
方法被调用。通常,信号处理程序可以简单调用
print
().
该函数在 Qt 6.2 引入。
另请参阅 print ().
[slot]
void
QWebEngineView::
reload
()
重新加载当前文档。
另请参阅 stop (), pageAction (),和 loadStarted ().
[signal, since 5.6]
void
QWebEngineView::
renderProcessTerminated
(
QWebEnginePage::RenderProcessTerminationStatus
terminationStatus
,
int
exitCode
)
此信号被发射当渲染进程采用非零退出状态被终止时。 terminationStatus 是进程的终止状态,且 exitCode 是进程终止的状态码。
该函数在 Qt 5.6 引入。
[signal]
void
QWebEngineView::
selectionChanged
()
此信号被发射每当选定改变时。
注意: 当使用鼠标通过左键点击并拖拽以选择文本时,会为每个新选中字符发射信号,而不是在释放鼠标左键时。
另请参阅 selectedText ().
[slot]
void
QWebEngineView::
stop
()
停止加载文档的方便槽。
相当于:
view->page()->triggerAction(QWebEnginePage::Stop);
另请参阅 reload (), pageAction (),和 loadFinished ().
[signal]
void
QWebEngineView::
titleChanged
(const
QString
&
title
)
此信号被发射每当 title 对于视图改变。
另请参阅 title ().
[signal]
void
QWebEngineView::
urlChanged
(const
QUrl
&
url
)
此信号被发射当 url 对于视图改变。
[虚拟]
QWebEngineView::
~QWebEngineView
()
销毁 Web 视图。
[override virtual protected]
void
QWebEngineView::
closeEvent
(
QCloseEvent
*
event
)
重实现: QWidget::closeEvent (QCloseEvent *event).
[override virtual protected]
void
QWebEngineView::
contextMenuEvent
(
QContextMenuEvent
*
event
)
重实现: QWidget::contextMenuEvent (QContextMenuEvent *event).
创建标准上下文菜单并返回指向它的指针。
[virtual protected]
QWebEngineView
*QWebEngineView::
createWindow
(
QWebEnginePage::WebWindowType
type
)
此函数被调用从 createWindow() 方法的关联 QWebEnginePage 每次页面想要创建新窗口按给定 type 。例如,当发出 JavaScript 请求在新窗口中打开文档时。
注意:
若
createWindow()
方法的关联页面被重实现,此方法不被调用,除非在重实现中明确这样做。
另请参阅 QWebEnginePage::createWindow ().
[override virtual protected]
void
QWebEngineView::
dragEnterEvent
(
QDragEnterEvent
*
e
)
重实现: QWidget::dragEnterEvent (QDragEnterEvent *event).
[override virtual protected]
void
QWebEngineView::
dragLeaveEvent
(
QDragLeaveEvent
*
e
)
重实现: QWidget::dragLeaveEvent (QDragLeaveEvent *event).
[override virtual protected]
void
QWebEngineView::
dragMoveEvent
(
QDragMoveEvent
*
e
)
重实现: QWidget::dragMoveEvent (QDragMoveEvent *event).
[override virtual protected]
void
QWebEngineView::
dropEvent
(
QDropEvent
*
e
)
重实现: QWidget::dropEvent (QDropEvent *event).
[override virtual protected]
bool
QWebEngineView::
event
(
QEvent
*
ev
)
重实现: QWidget::event (QEvent *event).
查找指定字符串, subString ,在页面使用给定 options .
要清除选定,只需传递空字符串。
resultCallback 必须接受 QWebEngineFindTextResult 参数。
警告: 我们保证回调 ( resultCallback ) 始终被调用,但可能在页面销毁期间完成。当 QWebEnginePage 被删除,将采用无效值触发回调,因此是不安全的使用相应 QWebEnginePage or QWebEngineView 实例在其中。
另请参阅 selectedText () 和 selectionChanged ().
[static, since 6.2]
QWebEngineView
*QWebEngineView::
forPage
(const
QWebEnginePage
*
page
)
返回视图 (若有的话),关联 page .
该函数在 Qt 6.2 引入。
[override virtual protected]
void
QWebEngineView::
hideEvent
(
QHideEvent
*
event
)
重实现: QWidget::hideEvent (QHideEvent *event).
返回指向导航网页的视图历史的指针。
相当于:
view->page()->history();
[since 6.2]
QWebEngineContextMenuRequest
*QWebEngineView::
lastContextMenuRequest
() const
返回当前上下文菜单的有关额外数据。它仅保证是有效的在调用 contextMenuEvent ().
该函数在 Qt 6.2 引入。
另请参阅 createStandardContextMenu ().
加载指定 url 并显示它。
注意: 视图仍然相同,直到达成足够数据才显示新 URL。
另请参阅 load(), setUrl (), url (), urlChanged (),和 QUrl::fromUserInput ().
[since 5.9]
void
QWebEngineView::
load
(const
QWebEngineHttpRequest
&
request
)
发出指定 request 并加载响应。
该函数在 Qt 5.9 引入。
另请参阅 load (), setUrl (), url (), urlChanged (),和 QUrl::fromUserInput ().
返回指向底层 Web 页面的指针。
另请参阅 setPage ().
返回指针指向 QAction 封装指定的 Web 动作 action .
[since 6.2]
void
QWebEngineView::
print
(
QPrinter
*
printer
)
将页面的当前内容渲染成临时 PDF 文档,然后打印它使用 printer .
将检索用于创建和打印 PDF 文档的设置从 printer 对象。
当完成时信号
printFinished
() 被发射采用
true
对于成功或
false
对于故障。
用户负责确保 printer 仍然有效直到 printFinished () 已发射。
注意: 打印运行在浏览器进程中,默认未沙盒化。
注意: 此函数会光栅化结果,当渲染到 printer 。请考虑提高默认分辨率为 printer 到至少 300 DPI (每英寸点数) 或使用 printToPdf () 以更有效地产生 PDF 文件输出。
该函数在 Qt 6.2 引入。
[since 6.2]
void
QWebEngineView::
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.
该函数在 Qt 6.2 引入。
另请参阅 pdfPrintingFinished ().
[since 6.2]
void
QWebEngineView::
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 实例在其中。
该函数在 Qt 6.2 引入。
把 Web 视图内容设为
data
。若
mimeType
自变量为空,假定内容为
text/plain,charset=US-ASCII
.
内容中引用的外部对象的定位相对于
baseUrl
。对于要加载外部对象,
baseUrl
不可以为空。
数据被立即加载;外部对象被异步加载。
另请参阅 load (), setHtml (),和 QWebEnginePage::toHtml ().
将 Web 视图内容设为指定 html 内容。
外部对象 (譬如:HTML 文档引用的样式表或图像) 的定位相对于
baseUrl
。对于要加载外部对象,
baseUrl
不可以为空。例如,若
html
检索自
http://www.example.com/documents/overview.html
,其是基 URL,然后相对 URL 引用图像,
diagram.png
,应该在
http://www.example.com/documents/diagram.png
.
HTML 文档立即加载,而外部对象异步加载。
当使用此方法时,Qt WebEngine 假定外部资源 (譬如 JavaScript 程序或样式表) 以 UTF-8 编码,除非另有指定。例如,可以指定外部脚本的编码透过
charset
属性在 HTML 脚本标签。另外,可以通过 Web 服务器指定编码。
此方便函数相当于
setContent(html, "text/html;charset=UTF-8", baseUrl)
.
警告: 此函数仅工作于 HTML。对于其它 MIME 类型 (譬如 XHTML 或 SVG), setContent () 应该被使用以取而代之。
注意:
大于 2 MB 的内容无法显示,因为 setHtml() 将转换提供的 HTML 为百分比编码并放置
data
:在它之前创建导航 URL。由此,提供的代码变为超过 Chromium 设置的 2 MB 限制的 URL。若内容太大,
loadFinished
() 信号被触发采用
success=false
.
另请参阅 load (), setContent (), QWebEnginePage::toHtml (),和 QWebEnginePage::setContent ().
使 page 成为 Web 视图的新网页。
父级 QObject 为提供页面仍然是对象所有者。若当前页面是 Web 视图子页面,则删除它。
另请参阅 page ().
返回指向视图 (或页面) 特定设置对象的指针。
相当于:
view->page()->settings();
[override virtual protected]
void
QWebEngineView::
showEvent
(
QShowEvent
*
event
)
重实现: QWidget::showEvent (QShowEvent *event).
[override virtual]
QSize
QWebEngineView::
sizeHint
() const
重实现访问函数为特性: QWidget::sizeHint .
触发指定 action 。若是可复选动作,指定 checked 假定状态。
以下范例触发拷贝动作,因此把任何选中文本拷贝到剪贴板。
view->triggerPageAction(QWebEnginePage::Copy);
另请参阅 pageAction ().