class QCefView
class QCefView
: public QWidget
表示 CEF 浏览器视图
总结
成员 | 描述 |
---|---|
public QCefView (const QString & url, const QCefSetting * setting, QWidget * parent, Qt::WindowFlags f) | QCefView 有参构造函数 |
public QCefView (QWidget * parent, Qt::WindowFlags f) | QCefView 有参构造函数 |
public ~QCefView () | QCefView 析构函数 |
public void addLocalFolderResource (const QString & path, const QString & url, int priority) | 添加具有本地 Web 资源目录的 url 映射项 |
public void addArchiveResource (const QString & path, const QString & url, const QString & password, int priority) | 使用包含 Web 资源的本地存档 (.zip) 文件添加 url 映射项 |
public int browserId () | 获取浏览器 ID |
public void navigateToString (const QString & content) | 导航到内容 |
public void navigateToUrl (const QString & url) | 导航到网址 |
public bool browserCanGoBack () | 检查浏览器是否可以返回 |
public bool browserCanGoForward () | 检查浏览器是否可以前进 |
public void browserGoBack () | 要求浏览器返回 |
public void browserGoForward () | 要求浏览器前进 |
public bool browserIsLoading () | 检查浏览器是否正在加载 |
public void browserReload () | 要求浏览器重新加载 |
public void browserStopLoad () | 要求浏览器停止加载 |
public bool triggerEvent (const QCefEvent & event) | 触发主框架的事件 |
public bool triggerEvent (const QCefEvent & event, qint64 frameId) | 触发指定frame的事件 |
public bool broadcastEvent (const QCefEvent & event) | 为所有frame广播事件 |
public bool responseQCefQuery (const QCefQuery & query) | 响应 QCefQuery 请求 |
public bool executeJavascript (qint64 frameId, const QString & code, const QString & url) | 在指定的frame中执行javascript代码,此方法不报告javascript的结果。要获取 javascript 执行的结果,请使用executeJavascriptWithResult |
public bool executeJavascriptWithResult (qint64 frameId, const QString & code, const QString & url, const QString & context) | 在指定的frame中执行javascript代码,结果将通过reportJavascriptResult 信号发送 |
public bool setPreference (const QString & name, const QVariant & value, const QString & error) | 设置此浏览器的首选项 |
public void setDisablePopupContextMenu (bool disable) | 设置是否禁用弹出浏览器的上下文菜单 |
public bool isPopupContextMenuDisabled () | 获取是否禁用弹出浏览器的上下文菜单 |
public bool hasDevTools () | 检测此浏览器是否打开了devtools |
public void showDevTools () | 打开 devtools 对话框 |
public void closeDevTools () | 关闭 devtools 对话框 |
public void setEnableDragAndDrop (bool enable) | 设置是否启用拖拽 |
public bool isDragAndDropEnabled () const | 获取是否启用拖拽 |
public void setFocus (Qt::FocusReason reason) | 请参考 QWidget::setFocus |
public QVariant inputMethodQuery (Qt::InputMethodQuery query) const | 请参考QWidget::inputMethodQuery |
public void render (QPainter * painter) | 将视图内容渲染到目标 painter |
protected virtual QCefView * onNewBrowser (qint64 sourceFrameId, const QString & url, const QString & name, QCefView::CefWindowOpenDisposition targetDisposition, QRect & rect, QCefSetting & settings) | 在创建新浏览器之前调用(仅适用于由非JavaScript创建的浏览器) |
protected virtual bool onNewPopup (qint64 frameId, const QString & targetUrl, QString & targetFrameName, QCefView::CefWindowOpenDisposition targetDisposition, QRect & rect, QCefSetting & settings, bool & disableJavascriptAccess) | 在创建弹出式浏览器之前调用(仅用于由 JavaScript 创建的浏览器) |
protected virtual void onNewDownloadItem (const QSharedPointer< QCefDownloadItem > & item, const QString & suggestedName) | 需要对新下载项的调用。保留对下载项的引用并调用 QCefDownloadItem::start 方法以允许并启动下载,忽略下载项以禁止下载 |
protected virtual void onUpdateDownloadItem (const QSharedPointer< QCefDownloadItem > & item) | 在更新下载项时调用。 若要获取QCefDownloadItem::start的方法,必须在 newDownloadItem 方法中调用 |
protected virtual bool onRequestCloseFromWeb () | 在来自 web 的关闭请求时调用 |
protected void paintEvent (QPaintEvent * event) | 请参考 QWidget::paintEvent |
protected void inputMethodEvent (QInputMethodEvent * event) | 请参考 QWidget::inputMethodEvent |
protected void showEvent (QShowEvent * event) | 请参考 QWidget::showEvent |
protected void hideEvent (QHideEvent * event) | 请参考 QWidget::hideEvent |
protected void focusInEvent (QFocusEvent * event) | 请参考 QWidget::focusInEvent |
protected void focusOutEvent (QFocusEvent * event) | 请参考 QWidget::focusOutEvent |
protected void resizeEvent (QResizeEvent * event) | 请参考 QWidget::resizeEvent |
protected void keyPressEvent (QKeyEvent * event) | 请参考 QWidget::keyPressEvent |
protected void keyReleaseEvent (QKeyEvent * event) | 请参考 QWidget::keyReleaseEvent |
protected void mouseMoveEvent (QMouseEvent * event) | 请参考 QWidget::mouseMoveEvent |
protected void mousePressEvent (QMouseEvent * event) | 请参考 QWidget::mousePressEvent |
protected void mouseReleaseEvent (QMouseEvent * event) | 请参考 QWidget::mouseReleaseEvent |
protected void wheelEvent (QWheelEvent * event) | 请参考 QWidget::wheelEvent |
protected void contextMenuEvent (QContextMenuEvent * event) | 请参考 QWidget::contextMenuEvent |
{signal} public void loadingStateChanged (int browserId, bool isLoading, bool canGoBack, bool canGoForward) | 加载状态更改时调用 |
{signal} public void loadStart (int browserId, qint64 frameId, bool isMainFrame, int transition_type) | 在加载开始时被调用 |
{signal} public void loadEnd (int browserId, qint64 frameId, bool isMainFrame, int httpStatusCode) | 在加载结束时被调用 |
{signal} public void loadError (int browserId, qint64 frameId, bool isMainFrame, int errorCode, const QString & errorMsg, const QString & failedUrl) | 由于错误导致加载失败时被调用 |
{signal} public void draggableRegionChanged (const QRegion & draggableRegion, const QRegion & nonDraggableRegion) | 在可拖动区域更改时调用 |
{signal} public void addressChanged (qint64 frameId, const QString & url) | 在网址更改时被调用 |
{signal} public void titleChanged (const QString & title) | 网站标题更改时被调用 |
{signal} public void faviconURLChanged (const QStringList & urls) | 网站图标地址更改时被调用 |
{signal} public void fullscreenModeChanged (bool fullscreen) | 在全屏模式更改时被调用 |
{signal} public void statusMessage (const QString & message) | 状态消息更改时被调用 |
{signal} public void consoleMessage (const QString & message, int level) | 从 Web 内容调用控制台消息 |
{signal} public void loadingProgressChanged (double progress) | 加载进度更改时调用 |
{signal} public void cefQueryRequest (int browserId, qint64 frameId, const QCefQuery & query) | 在新的 QCefQuery 请求上被调用 |
{signal} public void invokeMethod (int browserId, qint64 frameId, const QString & method, const QVariantList & arguments) | 在从 Web 内容调用方法请求时调用(Javascript) |
{signal} public void reportJavascriptResult (int browserId, qint64 frameId, const QString & context, const QVariant & result) | 在返回 executeJavascriptWithResult 执行的 javascript 的结果时进行调用 |
{signal} public void nativeBrowserCreated (QWindow * window) | 在创建原生浏览器窗口后调用。不适用于 OSR 模式 |
{slot} public inline void setFocus () | 请参考QWidget::setFocus |
enum CefWindowOpenDisposition | 表示 CEF 弹出窗口的打开配置 |
private QScopedPointer< QCefViewPrivate > d_ptr |
Members
public
QCefView
(const QString & url, const
QCefSetting
* setting, QWidget * parent, Qt::WindowFlags f)
QCefView 有参构造函数
参数
url
目标网址setting
QCefSetting 实例parent
父对象
public
QCefView
(QWidget * parent, Qt::WindowFlags f)
QCefView 有参构造函数
参数
parent
父对象
public
~QCefView
()
QCefView 析构函数
public void
addLocalFolderResource
(const QString & path, const QString & url, int priority)
添加具有本地 Web 资源目录的 url 映射项
参数
path
本地资源目录的路径url
要映射到的网址priority
优先级
public void
addArchiveResource
(const QString & path, const QString & url, const QString & password, int priority)
使用包含 Web 资源的本地存档 (.zip) 文件添加 url 映射项
参数
path
本地存档文件的路径url
要映射到的网址password
存档的密码priority
优先级
public int
browserId
()
获取浏览器 ID
返回值
浏览器 ID 标识
public void
navigateToString
(const QString & content)
导航到内容
参数
content
内容
public void
navigateToUrl
(const QString & url)
导航到网址
参数
url
网址
public bool
browserCanGoBack
()
检查浏览器是否可以返回
返回值
如果可以,则为true;否则为false
public bool
browserCanGoForward
()
检查浏览器是否可以前进
返回值
如果可以,则为true;否则为false
public void
browserGoBack
()
要求浏览器返回
public void
browserGoForward
()
要求浏览器前进
public bool
browserIsLoading
()
检查浏览器是否正在加载
返回值
如果正在加载,则为 true;否则为false
public void
browserReload
()
要求浏览器重新加载
public void
browserStopLoad
()
要求浏览器停止加载
public bool
triggerEvent
(const
QCefEvent
& event)
触发主框架的事件
参数
event
QCefEvent 实例
返回值
成功时为true;否则为false
public bool
triggerEvent
(const
QCefEvent
& event, qint64 frameId)
触发指定frame的事件
参数
event
QCefEvent 实例frameId
frame ID
返回值
成功时为true;否则为false
public bool
broadcastEvent
(const
QCefEvent
& event)
为所有frame广播事件
参数
event
QCefEvent 实例
返回值
成功时为true;否则为false
public bool
responseQCefQuery
(const
QCefQuery
& query)
响应 QCefQuery 请求
参数
query
QCefQuery 实例
返回值
成功时为true;否则为false
public bool
executeJavascript
(qint64 frameId, const QString & code, const QString & url)
在指定的frame中执行javascript代码,此方法不报告javascript的结果。要获取 javascript 执行的结果,请使用 executeJavascriptWithResult
参数
frameId
frame IDcode
JavaScript代码url
可在其中找到相关脚本的 URL(如果有)。渲染器可能会请求此 URL 以向开发人员显示错误的来源
返回值
成功时为true;否则为false
public bool
executeJavascriptWithResult
(qint64 frameId, const QString & code, const QString & url, const QString & context)
在指定的frame中执行javascript代码,结果将通过 reportJavascriptResult 信号发送
参数
frameId
frame IDcode
JavaScript 代码url
可在其中找到相关脚本的 URL(如果有)。渲染器可能会请求此 URL 以向开发人员显示错误的来源context
用于标识一个执行的上下文
返回值
成功时为true;否则为false
public bool
setPreference
(const QString & name, const QVariant & value, const QString & error)
设置此浏览器的首选项
参数
name
首选项名称value
首选项值,如果此值为QVariant::UnknownType
或者QVariant::Invalid
, 则首选项将恢复为默认值error
失败时填充的错误消息
返回值
成功时为true;否则为false
public void
setDisablePopupContextMenu
(bool disable)
设置是否禁用弹出浏览器的上下文菜单
参数
disable
True 表示禁用;false 表示启用
public bool
isPopupContextMenuDisabled
()
获取是否禁用弹出浏览器的上下文菜单
返回值
True 表示禁用;false 表示启用
public bool
hasDevTools
()
检测此浏览器是否打开了devtools
返回值
如果已经打开,则为 true; 否则为 false
public void
showDevTools
()
打开 devtools 对话框
public void
closeDevTools
()
关闭 devtools 对话框
public void
setEnableDragAndDrop
(bool enable)
设置是否启用拖拽
参数
enable
True 表示启用;false 表示禁用
不适用于OSR模式。注意这里有一个问题,当将文件拖动到非拖动区域时,将显示该文件的内容。你需要自己解决这个问题。
public bool
isDragAndDropEnabled
() const
获取是否启用拖拽
返回值
True 表示启用;false 表示禁用
public void
setFocus
(Qt::FocusReason reason)
请参考 QWidget::setFocus
public QVariant
inputMethodQuery
(Qt::InputMethodQuery query) const
请参考 QWidget::inputMethodQuery
public void
render
(QPainter * painter)
将视图内容渲染到目标 painter
参数
painter
目标 painter
protected virtual
QCefView
*
onNewBrowser
(qint64 sourceFrameId, const QString & url, const QString & name,
QCefView::CefWindowOpenDisposition
targetDisposition, QRect & rect,
QCefSetting
& settings)
在创建新浏览器之前调用(仅适用于由非JavaScript创建的浏览器)
参数
frameId
源 frame IDurl
目标网址name
目标名称targetDisposition
目标窗口打开方法rect
用于弹出窗口的矩形settings
用于弹出窗口的设置
返回值
如果为 true,则取消弹出窗口;false表示允许
protected virtual bool
onNewPopup
(qint64 frameId, const QString & targetUrl, QString & targetFrameName,
QCefView::CefWindowOpenDisposition
targetDisposition, QRect & rect,
QCefSetting
& settings, bool & disableJavascriptAccess)
在创建弹出式浏览器之前调用(仅用于由 JavaScript 创建的浏览器)
参数
frameId
源 frame IDtargetUrl
目标网址targetFrameName
目标名称targetDisposition
目标窗口打开方法settings
用于弹出窗口的设置rect
用于弹出窗口的矩形
返回值
如果为 true,则取消弹出窗口;false表示允许
protected virtual void
onNewDownloadItem
(const QSharedPointer<
QCefDownloadItem
> & item, const QString & suggestedName)
需要对新下载项的调用。保留对下载项的引用并调用 QCefDownloadItem::start 方法以允许并启动下载,忽略下载项以禁止下载
参数
item
新的下载项目suggestedName
新的建议的名称
protected virtual void
onUpdateDownloadItem
(const QSharedPointer<
QCefDownloadItem
> & item)
在更新下载项时调用。 若要获取 QCefDownloadItem::start 的方法,必须在 newDownloadItem 方法中调用
参数
item
下载项目
protected virtual bool
onRequestCloseFromWeb
()
在来自 web 的关闭请求时调用
返回值
True 表示允许关闭, false 取消关闭
protected void
paintEvent
(QPaintEvent * event)
请参考 QWidget::paintEvent
protected void
inputMethodEvent
(QInputMethodEvent * event)
请参考 QWidget::inputMethodEvent
protected void
showEvent
(QShowEvent * event)
请参考 QWidget::showEvent
protected void
hideEvent
(QHideEvent * event)
请参考 QWidget::hideEvent
protected void
focusInEvent
(QFocusEvent * event)
请参考 QWidget::focusInEvent
protected void
focusOutEvent
(QFocusEvent * event)
请参考 QWidget::focusOutEvent
protected void
resizeEvent
(QResizeEvent * event)
请参考 QWidget::resizeEvent
protected void
keyPressEvent
(QKeyEvent * event)
请参考 QWidget::keyPressEvent
protected void
keyReleaseEvent
(QKeyEvent * event)
请参考 QWidget::keyReleaseEvent
protected void
mouseMoveEvent
(QMouseEvent * event)
请参考 QWidget::mouseMoveEvent
protected void
mousePressEvent
(QMouseEvent * event)
请参考 QWidget::mousePressEvent
protected void
mouseReleaseEvent
(QMouseEvent * event)
请参考 QWidget::mouseReleaseEvent
protected void
wheelEvent
(QWheelEvent * event)
请参考 QWidget::wheelEvent
protected void
contextMenuEvent
(QContextMenuEvent * event)
请参考 QWidget::contextMenuEvent
{signal} public void
loadingStateChanged
(int browserId, bool isLoading, bool canGoBack, bool canGoForward)
加载状态更改时调用
参数
browserId
表示浏览器 IDisLoading
表示浏览器正在加载canGoBack
表示浏览器可以返回canGoForward
表示浏览器可以前进
{signal} public void
loadStart
(int browserId, qint64 frameId, bool isMainFrame, int transitionType)
在加载开始时被调用
参数
browserId
表示浏览器 IDframeId
表示frame IDisMainFrame
表示这是否是主frametransition_type
过渡类型
{signal} public void
loadEnd
(int browserId, qint64 frameId, bool isMainFrame, int httpStatusCode)
在加载结束时被调用
参数
browserId
表示浏览器 IDframeId
表示frame IDisMainFrame
表示这是否是主framehttpStatusCode
HTTP 状态代码
{signal} public void
loadError
(int browserId, qint64 frameId, bool isMainFrame, int errorCode, const QString & errorMsg, const QString & failedUrl)
由于错误导致加载失败时被调用
参数
browserId
表示浏览器 IDframeId
表示frame IDisMainFrame
表示这是否是主frameerrorCode
错误代码errorMsg
错误消息failedUrl
导致失败的网址
{signal} public void
draggableRegionChanged
(const QRegion & draggableRegion, const QRegion & nonDraggableRegion)
在可拖动区域更改时调用
参数
draggableRegion
新的可拖动区域nonDraggableRegion
新的不可拖动区域
{signal} public void
addressChanged
(qint64 frameId, const QString & url)
在网址更改时被调用
参数
frameId
frame IDurl
网址
{signal} public void
titleChanged
(const QString & title)
网站标题更改时被调用
参数
title
网站标题
{signal} public void
faviconURLChanged
(const QStringList & urls)
网站图标地址更改时被调用
参数
urls
图标地址
{signal} public void
fullscreenModeChanged
(bool fullscreen)
在全屏模式更改时被调用
参数
fullscreen
当前全屏模式
{signal} public void
statusMessage
(const QString & message)
状态消息更改时被调用
参数
message
状态信息
{signal} public void
consoleMessage
(const QString & message, int level)
从 Web 内容调用控制台消息
参数
message
消息level
级别
{signal} public void
loadingProgressChanged
(double progress)
加载进度更改时调用
参数
progress
当前进度
{signal} public void
cefQueryRequest
(int browserId, qint64 frameId, const
QCefQuery
& query)
在新的 QCefQuery 请求上被调用
参数
browserId
浏览器 IDframeId
frame IDquery
查询请求
{signal} public void
invokeMethod
(int browserId, qint64 frameId, const QString & method, const QVariantList & arguments)
在从 Web 内容调用方法请求时调用(Javascript)
参数
browserId
浏览器 IDframeId
frame IDmethod
方法名称arguments
参数列表
{signal} public void
reportJavascriptResult
(int browserId, qint64 frameId, const QString & context, const QVariant & result)
对使用 executeJavascriptWithResult 执行的 javascript 的结果进行调用
参数
browserId
浏览器 IDframeId
frame IDcontext
上下文result
结果
{signal} public void
nativeBrowserCreated
(QWindow * window)
在创建原生浏览器窗口后调用。不适用于 OSR 模式。
参数
win
CEF 窗口
{slot} public inline void
setFocus
()
enum
CefWindowOpenDisposition
表示 CEF 弹出窗口的打开配置枚举
Values | Descriptions |
---|---|
CefWindowOpenDispositionUnknown | |
CefWindowOpenDispositionCurrentTab | |
CefWindowOpenDispositionSingletonTab | |
CefWindowOpenDispositionNewForeGroundTab | |
CefWindowOpenDispositionNewBackgroundTab | |
CefWindowOpenDispositionNewPopup | |
CefWindowOpenDispositionNewWindow | |
CefWindowOpenDispositionSaveToDisk | |
CefWindowOpenDispositionOffTheRecord | |
CefWindowOpenDispositionIgnoreAction |