QWebEngineFrame Class

Die Klasse QWebEngineFrame gibt Informationen über und Kontrolle über eine Kachel. Mehr...

Kopfzeile: #include <QWebEngineFrame>
CMake: find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmake: QT += webenginecore
Seit: Qt 6.8
In QML: webEngineFrame

Öffentliche Funktionen

QList<QWebEngineFrame> children() const
QString htmlName() const
bool isMainFrame() const
bool isValid() const
QString name() const
void printToPdf(const QString &filePath)
void printToPdf(const std::function<void (const QByteArray &)> &callback)
void runJavaScript(const QString &script, const std::function<void (const QVariant &)> &callback)
void runJavaScript(const QString &script, quint32 worldId = 0)
void runJavaScript(const QString &script, quint32 worldId, const std::function<void (const QVariant &)> &callback)
QSizeF size() const
QUrl url() const
bool operator!=(const QWebEngineFrame &left, const QWebEngineFrame &right)
bool operator==(const QWebEngineFrame &left, const QWebEngineFrame &right)

Detaillierte Beschreibung

Ein Web-Engine-Frame stellt einen einzelnen Frame innerhalb einer Webseite dar, wie z.B. die von <frame> oder <iframe> erstellten HTML-Elemente. Ein aktives QWebEnginePage hat einen oder mehrere Frames, die in einer Baumstruktur angeordnet sind. Auf den obersten Frame, die Wurzel dieses Baums, kann über die Methode mainFrame() zugegriffen werden, und children() liefert die direkten Nachfahren eines Frames.

Die Lebensdauer eines Frames ist höchstens so lang wie das QWebEnginePage Objekt, das ihn erzeugt hat. Frames können jedoch spontan und dynamisch erstellt und gelöscht werden, zum Beispiel durch Navigation und Skriptausführung. Aus diesem Grund geben viele QWebEngineFrame-Methoden optionale Werte zurück, die std::nullopt sind, wenn der Frame nicht mehr existiert.

Dokumentation der Mitgliedsfunktionen

void QWebEngineFrame::runJavaScript(const QString &script, const std::function<void (const QVariant &)> &callback)

[invokable] void QWebEngineFrame::runJavaScript(const QString &script, quint32 worldId = 0)

void QWebEngineFrame::runJavaScript(const QString &script, quint32 worldId, const std::function<void (const QVariant &)> &callback)

Führt den in script enthaltenen JavaScript-Code in diesem Frame aus, ohne zu prüfen, ob das DOM der Seite aufgebaut wurde. Um Konflikte mit anderen auf der Seite ausgeführten Skripten zu vermeiden, wird die Welt, in der das Skript ausgeführt wird, durch worldId angegeben. Die Welt-ID-Werte entsprechen denen von QWebEngineScript::ScriptWorldId und liegen zwischen 0 und 256. Wenn Sie die ID world weglassen, wird das Skript in der Welt MainWorld ausgeführt. Nach der Ausführung des Skripts wird callback mit dem Ergebnis der zuletzt ausgeführten Anweisung aufgerufen. callback kann ein Funktionszeiger, ein Funktor oder ein Lambda sein, und es wird erwartet, dass es einen Parameter QVariant annimmt. Ein Beispiel:

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

Nur einfache Daten können von JavaScript als Ergebniswert zurückgegeben werden. Zu den unterstützten Datentypen gehören alle JSON-Datentypen sowie z. B. Date und ArrayBuffer. Nicht unterstützte Datentypen sind z. B. Function und Promise.

Warnung: Führen Sie keine langen Routinen in der Callback-Funktion aus, da dies das Rendering der Web-Engine-Seite blockieren könnte.

Warnung: Wir garantieren, dass callback immer aufgerufen wird, aber es könnte während der Zerstörung der Seite geschehen. Wenn QWebEnginePage gelöscht wird, wird der Callback mit einem ungültigen Wert ausgelöst und es ist nicht sicher, die entsprechende QWebEnginePage oder QWebEngineView Instanz darin zu verwenden.

Siehe auch QWebEngineScript::ScriptWorldId, QWebEnginePage::runJavaScript, und Script Injection.

QList<QWebEngineFrame> QWebEngineFrame::children() const

Gibt eine Liste der Kinder des Rahmens in beliebiger Reihenfolge zurück.

Wenn der Rahmen nicht gefunden werden konnte, wird eine leere Liste zurückgegeben.

QString QWebEngineFrame::htmlName() const

Gibt den Wert des HTML-Attributs name des Frames zurück oder eine leere Zeichenkette, wenn der Frame keine hat.

Wenn der Rahmen nicht gefunden werden konnte, wird ein Nullwert zurückgegeben QString.

Hinweis: Getter-Funktion für die Eigenschaft htmlName.

Siehe auch name.

bool QWebEngineFrame::isMainFrame() const

Gibt true zurück, wenn dieses Objekt den Hauptrahmen der Seite darstellt; andernfalls false.

Hinweis: Getter-Funktion für die Eigenschaft isMainFrame.

bool QWebEngineFrame::isValid() const

Gibt true zurück, wenn dieses Objekt einen vorhandenen Rahmen darstellt; andernfalls false.

Sobald ein Rahmen ungültig ist, wird er nie wieder gültig.

Hinweis: Getter-Funktion für die Eigenschaft isValid.

QString QWebEngineFrame::name() const

Gibt den Namen des Frames zurück, d. h. das, was in JavaScript von window.name zurückgegeben würde.

Wenn der Rahmen nicht gefunden werden konnte, wird null zurückgegeben QString.

Hinweis: Getter-Funktion für die Eigenschaft name.

Siehe auch htmlName.

[invokable] void QWebEngineFrame::printToPdf(const QString &filePath)

Rendert den aktuellen Inhalt des Rahmens in ein PDF-Dokument und speichert es an dem unter filePath angegebenen Ort. Für den Druck wird eine Seitengröße von A4 im Hochformat verwendet, und es wird der gesamte Seitenumfang berücksichtigt.

Diese Methode stellt eine asynchrone Anforderung zum Drucken der Webseite in ein PDF-Dokument und kehrt sofort zurück. Um über das Ergebnis der Anforderung informiert zu werden, verbinden Sie sich mit dem Signal QWebEnginePage::pdfPrintingFinished().

Hinweis: Die Webaktion QWebEnginePage::Stop kann verwendet werden, um diesen asynchronen Vorgang zu unterbrechen.

Wenn eine Datei unter dem angegebenen Dateipfad bereits existiert, wird sie überschrieben.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.

Siehe auch QWebEnginePage::pdfPrintingFinished().

void QWebEngineFrame::printToPdf(const std::function<void (const QByteArray &)> &callback)

Rendert den aktuellen Inhalt des Rahmens in ein PDF-Dokument und gibt ein Byte-Array mit den PDF-Daten als Parameter an callback zurück. Beim Drucken wird eine Seitengröße von A4 im Hochformat verwendet und der gesamte Seitenumfang einbezogen.

Der callback muss eine const-Referenz auf einen QByteArray als Parameter annehmen. Wenn der Druck erfolgreich war, enthält dieses Byte-Array die PDF-Daten, andernfalls ist das Byte-Array leer.

Hinweis: Die Web-Aktion QWebEnginePage::Stop kann verwendet werden, um diesen Vorgang zu unterbrechen.

QSizeF QWebEngineFrame::size() const

Gibt die Größe des Rahmens innerhalb des Ansichtsfensters zurück.

Wenn der Rahmen nicht gefunden werden konnte, wird QSizeF() zurückgegeben.

Hinweis: Getter-Funktion für die Eigenschaft size.

QUrl QWebEngineFrame::url() const

Gibt die URL des Inhalts zurück, der derzeit in diesem Frame geladen ist.

Wenn der Frame nicht gefunden werden konnte, wird ein leeres QUrl zurückgegeben.

Hinweis: Getter-Funktion für die Eigenschaft url.

Verwandte Nicht-Mitglieder

[noexcept] bool operator!=(const QWebEngineFrame &left, const QWebEngineFrame &right)

Gibt true zurück, wenn left und right verschiedene Frames in derselben Webseite darstellen, andernfalls false.

[noexcept] bool operator==(const QWebEngineFrame &left, const QWebEngineFrame &right)

Gibt true zurück, wenn left und right denselben Frame in derselben Webseite darstellen, andernfalls false.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.