QWebEngineView 類

QWebEngineView 類提供用於查看和編輯 Web 文檔的 Widget。 更多...

頭: #include <QWebEngineView>
CMake: find_package(Qt6 REQUIRED COMPONENTS WebEngineWidgets)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineWidgets)
qmake: QT += webenginewidgets
繼承: QWidget

特性

公共函數

QWebEngineView (QWidget * parent = nullptr)
QWebEngineView (QWebEngineProfile * profile , QWidget * parent = nullptr)
QWebEngineView (QWebEnginePage * page , 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;
    view.load(QUrl("https://qt-project.org/"));
    view.resize(1024, 750);
    view.show();
					

另外, setUrl () 可以用於加載網站。若有隨時可用的 HTML 內容,可以使用 setHtml () 代替。

The loadStarted () 信號被發射當視圖開始加載和 loadProgress () 信號被發射每當 Web 視圖元素完成加載時,如:嵌入式圖像或腳本。 loadFinished () 信號被發射當視圖已完全加載。其自變量為 true or false ,指示加載是成功或失敗。

The 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 內容操縱範例 , and WebEngine Recipe Browser Example.

特性文檔編製

[read-only] hasSelection : const bool

此特性保持此頁麵是否包含選定內容。

默認情況下,此特性為 false .

訪問函數:

bool hasSelection () const

另請參閱 selectionChanged ().

[read-only] icon : const QIcon

此特性保持關聯目前查看頁麵的圖標。

默認情況下,此特性包含 null 圖標。

訪問函數:

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 : QUrl

此特性保持目前查看網頁的 URL。

設置此特性清零視圖並加載 URL。

默認情況下,此特性包含空的無效 URL。

訪問函數:

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

另請參閱 load () 和 urlChanged ().

zoomFactor : qreal

此特性保持視圖縮放因子。

有效值範圍從 0.25 to 5.0 。默認因子為 1.0 .

訪問函數:

qreal zoomFactor () const
void setZoomFactor (qreal factor )

成員函數文檔編製

[explicit] QWebEngineView:: QWebEngineView ( QWidget * parent = nullptr)

構造空 Web 視圖采用父級 parent .

另請參閱 load ().

[explicit, since 6.4] QWebEngineView:: QWebEngineView ( QWebEngineProfile * profile , QWidget * parent = nullptr)

Constructs an empty web view using profile 采用父級 parent .

注意: The profile object ownership is not taken and it should outlive the view.

This function was introduced in Qt 6.4.

另請參閱 load ().

[explicit, since 6.4] QWebEngineView:: QWebEngineView ( QWebEnginePage * page , QWidget * parent = nullptr)

Constructs a web view containing page 采用父級 parent .

注意: 所有權對於 page is not taken, and it is up to the caller to ensure it is deleted.

This function was introduced in Qt 6.4.

另請參閱 load () 和 setPage ().

[虛擬] QWebEngineView:: ~QWebEngineView ()

銷毀 Web 視圖。

[slot] void QWebEngineView:: back ()

方便槽,用於把先前文檔加載進由導航鏈接構建的文檔列錶。什麼都不做,若沒有先前文檔。

相當於:

    view->page()->triggerAction(QWebEnginePage::Back);
					

另請參閱 forward () 和 pageAction ().

[override virtual protected] void QWebEngineView:: closeEvent ( QCloseEvent * event )

重實現: QWidget::closeEvent (QCloseEvent *event).

[override virtual protected] void QWebEngineView:: contextMenuEvent ( QContextMenuEvent * event )

重實現: QWidget::contextMenuEvent (QContextMenuEvent *event).

QMenu *QWebEngineView:: createStandardContextMenu ()

Creates a standard context menu and returns a pointer to it.

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

此函數的調用是從 createWindow () method of the associated 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).

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

查找指定字符串, subString ,在頁麵使用給定 options .

要清除選定,隻需傳遞空字符串。

The resultCallback 必須接受 QWebEngineFindTextResult 參數。

警告: 我們保證迴調 ( resultCallback ) 始終被調用,但可能在頁麵銷毀期間完成。當 QWebEnginePage 被刪除,將采用無效值觸發迴調,因此是不安全的使用相應 QWebEnginePage or QWebEngineView 實例在其中。

另請參閱 selectedText () 和 selectionChanged ().

[static, since 6.2] QWebEngineView *QWebEngineView:: forPage (const QWebEnginePage * page )

Returns the view if any, associated with the page .

This function was introduced in Qt 6.2.

另請參閱 page () 和 setPage ().

[slot] void QWebEngineView:: forward ()

方便槽,用於把下一文檔加載進由導航鏈接構建的文檔列錶。什麼都不做,若沒有下一文檔。

相當於:

    view->page()->triggerAction(QWebEnginePage::Forward);
					

另請參閱 back () 和 pageAction ().

[override virtual protected] void QWebEngineView:: hideEvent ( QHideEvent * event )

重實現: QWidget::hideEvent (QHideEvent *event).

QWebEngineHistory *QWebEngineView:: history () const

返迴指嚮導航網頁的視圖曆史的指針。

相當於:

    view->page()->history();
					

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

此信號被發射當視圖關聯的 favicon 圖標改變時。新圖標的指定通過否則否則 icon .

注意: 通知程序信號對於特性 icon .

另請參閱 icon (), iconUrl (),和 iconUrlChanged ().

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

此信號被發射當視圖關聯的 favicon 圖標 URL 改變時。新 URL 的指定通過 url .

注意: 通知程序信號對於特性 iconUrl .

另請參閱 iconUrl (), icon (),和 iconChanged ().

[since 6.2] QWebEngineContextMenuRequest *QWebEngineView:: lastContextMenuRequest () const

返迴當前上下文菜單的有關額外數據。它僅保證是有效的在調用 contextMenuEvent ().

This function was introduced in Qt 6.2.

另請參閱 createStandardContextMenu ().

void QWebEngineView:: load (const QUrl & url )

加載指定 url 並顯示它。

注意: 視圖仍然相同,直到達成足夠數據纔顯示新 URL。

另請參閱 load(), setUrl (), url (), urlChanged (),和 QUrl::fromUserInput ().

void QWebEngineView:: load (const QWebEngineHttpRequest & request )

發齣指定 request 並加載響應。

另請參閱 load (), setUrl (), url (), urlChanged (),和 QUrl::fromUserInput ().

[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 ().

QWebEnginePage *QWebEngineView:: page () const

返迴指嚮底層 Web 頁麵的指針。

另請參閱 setPage ().

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

返迴指針指嚮 QAction 封裝指定的 Web 動作 action .

[signal, since 6.2] void QWebEngineView:: pdfPrintingFinished (const QString & filePath , bool success )

此信號被發射,當把網頁打印成 PDF 文件完成時。 filePath 將包含請求創建的文件路徑,且 success 將是 true 若成功創建文件且 false 否則。

This function was introduced in Qt 6.2.

另請參閱 printToPdf ().

[since 6.2] void QWebEngineView:: print ( QPrinter * printer )

將頁麵的當前內容渲染成臨時 PDF 文檔,然後打印它使用 printer .

將檢索用於創建和打印 PDF 文檔的設置從 printer 對象。

When finished the signal printFinished () is emitted with the true for success or false 對於故障。

It is the users responsibility to ensure the printer 仍然有效直到 printFinished () 已發射。

注意: 打印運行在瀏覽器進程中,默認未沙盒化。

注意: The data generation step of printing can be interrupted for a short period of time using the QWebEnginePage::Stop web action.

注意: 此函數會光柵化結果,當渲染到 printer 。請考慮提高默認分辨率為 printer 到至少 300 DPI (每英寸點數) 或使用 printToPdf () 以更有效地産生 PDF 文件輸齣。

This function was introduced in Qt 6.2.

[signal, since 6.2] void QWebEngineView:: printFinished ( bool success )

This signal is emitted when printing requested with print () has finished. The parameter success is true for success or false 對於故障。

This function was introduced in Qt 6.2.

另請參閱 print ().

[signal, since 6.2] void QWebEngineView:: printRequested ()

此信號被發射當 JavaScript window.print() 方法被調用。通常,信號處理程序隻需調用 print ().

This function was introduced in Qt 6.2.

另請參閱 print ().

[since 6.2] void QWebEngineView:: printToPdf (const QString & filePath , const QPageLayout & layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()), const QPageRanges & ranges = {})

把頁麵的當前內容渲染成 PDF 文檔,並將它保存在指定位置 filePath 。産生的 PDF 文檔的頁麵大小和取嚮,獲取自指定值 layout , while the range of pages printed is taken from ranges with the default being printing all pages.

為將網頁打印成 PDF,此方法發齣異步請求,並立即返迴。要通報請求的有關結果,連接到信號 pdfPrintingFinished ().

若提供的文件路徑已存在,將覆寫它。

This function was introduced in 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 = {})

把頁麵的當前內容渲染成 PDF 文檔,並將包含 PDF 數據的字節數組作為參數返迴給 resultCallback 。産生的 PDF 文檔的頁麵大小和取嚮,獲取自指定值 layout , while the range of pages printed is taken from ranges with the default being printing all pages.

The resultCallback 必須接受 const 引用對 QByteArray 作為參數。若打印成功,此字節數組將包含 PDF 數據,否則,字節數組將為空。

警告: 我們保證迴調 ( resultCallback ) 始終被調用,但可能在頁麵銷毀期間完成。當 QWebEnginePage 被刪除,將采用無效值觸發迴調,因此是不安全的使用相應 QWebEnginePage or QWebEngineView 實例在其中。

This function was introduced in Qt 6.2.

[slot] void QWebEngineView:: reload ()

重新加載當前文檔。

另請參閱 stop (), pageAction (),和 loadStarted ().

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

此信號被發射當渲染進程采用非零退齣狀態被終止時。 terminationStatus 是進程的終止狀態,且 exitCode 是進程終止的狀態碼。

[signal] void QWebEngineView:: selectionChanged ()

此信號發射,每當選定改變時。

注意: 當使用鼠標通過左鍵點擊並拖拽以選擇文本時,會為每個新選中字符發射信號,而不是在釋放鼠標左鍵時。

另請參閱 selectedText ().

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

把 Web 視圖內容設為 data 。若 mimeType 自變量為空,假定內容為 text/plain,charset=US-ASCII .

內容中引用的外部對象的定位相對於 baseUrl 。對於要加載外部對象, baseUrl 不可以為空。

數據被立即加載;外部對象被異步加載。

另請參閱 load (), setHtml (),和 QWebEnginePage::toHtml ().

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

將 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 ().

void QWebEngineView:: setPage ( QWebEnginePage * page )

使 page 成為 Web 視圖的新網頁。

父級 QObject 為提供頁麵仍然是對象所有者。若當前頁麵是 Web 視圖子頁麵,則刪除它。

另請參閱 page ().

QWebEngineSettings *QWebEngineView:: settings () const

返迴指嚮視圖 (或頁麵) 特定設置對象的指針。

相當於:

    view->page()->settings();
					

[override virtual protected] void QWebEngineView:: showEvent ( QShowEvent * event )

重實現: QWidget::showEvent (QShowEvent *event).

[override virtual] QSize QWebEngineView:: sizeHint () const

重實現訪問函數為特性: QWidget::sizeHint .

[slot] void QWebEngineView:: stop ()

停止加載文檔的方便槽。

相當於:

    view->page()->triggerAction(QWebEnginePage::Stop);
					

另請參閱 reload (), pageAction (),和 loadFinished ().

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

此信號發射,每當 title 對於視圖改變。

另請參閱 title ().

void QWebEngineView:: triggerPageAction ( QWebEnginePage::WebAction action , bool checked = false)

觸發指定 action 。若是可復選動作,指定 checked 假定狀態。

以下範例觸發拷貝動作,因此把任何選中文本拷貝到剪貼闆。

    view->triggerPageAction(QWebEnginePage::Copy);
					

另請參閱 pageAction ().

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

此信號發射,當 url 對於視圖改變。

另請參閱 url () 和 load ().