QTextBrowser Class

Die Klasse QTextBrowser bietet einen Rich-Text-Browser mit Hypertext-Navigation. Mehr...

Kopfzeile: #include <QTextBrowser>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbungen: QTextEdit

Eigenschaften

Öffentliche Funktionen

QTextBrowser(QWidget *parent = nullptr)
int backwardHistoryCount() const
void clearHistory()
int forwardHistoryCount() const
QString historyTitle(int i) const
QUrl historyUrl(int i) const
bool isBackwardAvailable() const
bool isForwardAvailable() const
bool openExternalLinks() const
bool openLinks() const
QStringList searchPaths() const
void setOpenExternalLinks(bool open)
void setOpenLinks(bool open)
void setSearchPaths(const QStringList &paths)
QUrl source() const
QTextDocument::ResourceType sourceType() const

Reimplementierte öffentliche Funktionen

virtual QVariant loadResource(int type, const QUrl &name) override

Öffentliche Slots

virtual void backward()
virtual void forward()
virtual void home()
virtual void reload()
void setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

Signale

void anchorClicked(const QUrl &link)
void backwardAvailable(bool available)
void forwardAvailable(bool available)
void highlighted(const QUrl &link)
void historyChanged()
void sourceChanged(const QUrl &src)

Geschützte Funktionen

virtual void doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

Reimplementierte geschützte Funktionen

virtual bool event(QEvent *e) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *ev) override
virtual void keyPressEvent(QKeyEvent *ev) override
virtual void mouseMoveEvent(QMouseEvent *e) override
virtual void mousePressEvent(QMouseEvent *e) override
virtual void mouseReleaseEvent(QMouseEvent *e) override
virtual void paintEvent(QPaintEvent *e) override

Detaillierte Beschreibung

Diese Klasse erweitert QTextEdit (im Nur-Lese-Modus) und fügt einige Navigationsfunktionen hinzu, damit Benutzer Links in Hypertext-Dokumenten folgen können.

Wenn Sie Ihren Benutzern einen editierbaren Rich-Text-Editor zur Verfügung stellen wollen, verwenden Sie QTextEdit. Wenn Sie einen Textbrowser ohne Hypertext-Navigation wünschen, verwenden Sie QTextEdit, und verwenden Sie QTextEdit::setReadOnly(), um die Bearbeitung zu deaktivieren. Wenn Sie nur einen kleinen Teil des Rich-Textes anzeigen wollen, verwenden Sie QLabel.

Dokumentquelle und Inhalt

Der Inhalt von QTextEdit wird mit setHtml() oder setPlainText() gesetzt, aber QTextBrowser implementiert auch die Funktion setSource(), die es ermöglicht, ein benanntes Dokument als Quelltext zu verwenden. Der Name wird in einer Liste von Suchpfaden und im Verzeichnis der aktuellen Dokumentenfabrik nachgeschlagen.

Endet ein Dokumentenname mit einem Anker (z. B. "#anchor"), scrollt der Textbrowser automatisch zu dieser Position (mit scrollToAnchor()). Wenn der Benutzer auf einen Hyperlink klickt, ruft der Browser selbst setSource() mit dem Wert des Links href als Argument auf. Sie können die aktuelle Quelle verfolgen, indem Sie sich mit dem Signal sourceChanged() verbinden.

QTextBrowser stellt die Slots backward() und forward() zur Verfügung, mit denen Sie die Schaltflächen Zurück und Vorwärts implementieren können. Der home() Slot setzt den Text auf das allererste angezeigte Dokument. Das Signal anchorClicked() wird ausgegeben, wenn der Benutzer auf einen Anker klickt. Um das Standard-Navigationsverhalten des Browsers außer Kraft zu setzen, rufen Sie die Funktion setSource() auf, um neuen Dokumententext in einem mit diesem Signal verbundenen Slot bereitzustellen.

Wenn Sie Dokumente laden wollen, die im Qt-Ressourcensystem gespeichert sind, verwenden Sie qrc als Schema in der zu ladenden URL. Zum Beispiel für den Dokument-Ressourcenpfad :/docs/index.html verwenden Sie qrc:/docs/index.html als URL mit setSource().

Siehe auch QTextEdit und QTextDocument.

Eigenschaft Dokumentation

[read-only] modified : const bool

Diese Eigenschaft gibt an, ob der Inhalt des Textbrowsers geändert wurde

Gibt an, ob QTextBrowser automatisch Links zu externen Quellen mit QDesktopServices::openUrl() öffnen soll, anstatt das Signal anchorClicked zu senden. Links werden als extern betrachtet, wenn ihr Schema weder file noch qrc ist.

Der Standardwert ist false.

Zugriffsfunktionen:

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

Diese Eigenschaft legt fest, ob QTextBrowser automatisch Links öffnen soll, die der Benutzer per Maus oder Tastatur zu aktivieren versucht.

Unabhängig vom Wert dieser Eigenschaft wird immer das Signal anchorClicked ausgegeben.

Der Standardwert ist true.

Zugriffsfunktionen:

bool openLinks() const
void setOpenLinks(bool open)

readOnly : const bool

Diese Eigenschaft gibt an, ob der Textbrowser schreibgeschützt ist.

Standardmäßig ist diese Eigenschaft true.

searchPaths : QStringList

Diese Eigenschaft enthält die Suchpfade, die der Textbrowser verwendet, um unterstützende Inhalte zu finden

QTextBrowser verwendet diese Liste zum Auffinden von Bildern und Dokumenten.

Standardmäßig enthält diese Eigenschaft eine leere Stringliste.

Zugriffsfunktionen:

QStringList searchPaths() const
void setSearchPaths(const QStringList &paths)

source : QUrl

Diese Eigenschaft enthält den Namen des angezeigten Dokuments.

Dies ist eine ungültige URL, wenn kein Dokument angezeigt wird oder wenn die Quelle unbekannt ist.

Beim Setzen dieser Eigenschaft versucht QTextBrowser, ein Dokument mit dem angegebenen Namen in den Pfaden der Eigenschaft searchPaths und des Verzeichnisses der aktuellen Quelle zu finden, es sei denn, der Wert ist ein absoluter Dateipfad. Es wird auch nach optionalen Ankern gesucht und das Dokument entsprechend gescrollt

Wenn das erste Tag im Dokument <qt type=detail> ist, wird das Dokument als Popup und nicht als neues Dokument im Browserfenster selbst angezeigt. Andernfalls wird das Dokument normal im Textbrowser angezeigt, wobei der Text auf den Inhalt des benannten Dokuments mit QTextDocument::setHtml() oder QTextDocument::setMarkdown() gesetzt wird, je nachdem, ob der Dateiname mit einer der bekannten Markdown-Dateierweiterungen endet.

Wenn Sie die automatische Typerkennung vermeiden und den Typ explizit angeben möchten, rufen Sie setSource() auf, anstatt diese Eigenschaft zu setzen.

Standardmäßig enthält diese Eigenschaft eine leere URL.

Zugriffsfunktionen:

QUrl source() const
void setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

[read-only] sourceType : const QTextDocument::ResourceType

Diese Eigenschaft enthält den Typ des angezeigten Dokuments

Sie lautet QTextDocument::UnknownResource, wenn kein Dokument angezeigt wird oder wenn der Typ der Quelle unbekannt ist. Andernfalls enthält sie den Typ, der erkannt wurde, oder den Typ, der beim Aufruf von setSource() angegeben wurde.

Zugriffsfunktionen:

QTextDocument::ResourceType sourceType() const

undoRedoEnabled : const bool

Diese Eigenschaft gibt an, ob der Textbrowser Rückgängig-/Wiederherstellungsoperationen unterstützt.

Standardmäßig ist diese Eigenschaft false.

Dokumentation der Mitgliedsfunktionen

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

Konstruiert einen leeren QTextBrowser mit übergeordnetem parent.

[signal] void QTextBrowser::anchorClicked(const QUrl &link)

Dieses Signal wird ausgegeben, wenn der Benutzer auf einen Anker klickt. Die URL, auf die der Anker verweist, wird in link übergeben.

Beachten Sie, dass der Browser automatisch die Navigation zu dem durch link angegebenen Ort durchführt, es sei denn, die Eigenschaft openLinks ist auf false gesetzt oder Sie rufen setSource() in einem verbundenen Slot auf. Dieser Mechanismus wird verwendet, um die Standardnavigationsfunktionen des Browsers außer Kraft zu setzen.

[virtual slot] void QTextBrowser::backward()

Ändert das angezeigte Dokument in das vorherige Dokument in der Liste der Dokumente, die durch Navigationsverknüpfungen erstellt wurden. Führt nichts aus, wenn es kein vorheriges Dokument gibt.

Siehe auch forward() und backwardAvailable().

[signal] void QTextBrowser::backwardAvailable(bool available)

Dieses Signal wird ausgegeben, wenn sich die Verfügbarkeit von backward() ändert. available ist falsch, wenn der Benutzer bei home() ist; andernfalls ist es wahr.

int QTextBrowser::backwardHistoryCount() const

Gibt die Anzahl der Orte in der Historie zurück.

void QTextBrowser::clearHistory()

Löscht den Verlauf der besuchten Dokumente und deaktiviert die Vor- und Rückwärtsnavigation.

Siehe auch backward() und forward().

[virtual protected] void QTextBrowser::doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

Versucht, das Dokument unter der angegebenen Adresse url mit der angegebenen type zu laden.

setSource() ruft doSetSource auf. In Qt 5 war setSource(const QUrl &url) virtuell. In Qt 6 ist doSetSource() stattdessen virtuell, so dass es in Unterklassen überschrieben werden kann.

[override virtual protected] bool QTextBrowser::event(QEvent *e)

Reimplements: QAbstractScrollArea::event(QEvent *Event).

[override virtual protected] bool QTextBrowser::focusNextPrevChild(bool next)

Reimplements: QTextEdit::focusNextPrevChild(bool next).

[override virtual protected] void QTextBrowser::focusOutEvent(QFocusEvent *ev)

Reimplements: QTextEdit::focusOutEvent(QFocusEvent *e).

[virtual slot] void QTextBrowser::forward()

Ändert das angezeigte Dokument in das nächste Dokument in der Liste der Dokumente, die durch Navigationslinks erstellt wurden. Tut nichts, wenn es kein nächstes Dokument gibt.

Siehe auch backward() und forwardAvailable().

[signal] void QTextBrowser::forwardAvailable(bool available)

Dieses Signal wird ausgegeben, wenn sich die Verfügbarkeit von forward() ändert. available ist wahr, nachdem der Benutzer backward() aufgerufen hat, und falsch, wenn der Benutzer forward() aufruft oder aufruft.

int QTextBrowser::forwardHistoryCount() const

Gibt die Anzahl der Orte in der Historie zurück.

[signal] void QTextBrowser::highlighted(const QUrl &link)

Dieses Signal wird ausgegeben, wenn der Benutzer einen Anker im Dokument ausgewählt, aber nicht aktiviert hat. Die URL, auf die der Anker verweist, wird in link übergeben.

[signal] void QTextBrowser::historyChanged()

Dieses Signal wird ausgesendet, wenn sich der Verlauf ändert.

Siehe auch historyTitle() und historyUrl().

QString QTextBrowser::historyTitle(int i) const

Gibt die documentTitle() des HistoryItems zurück.

EingabeRückgabe
i < 0backward() Geschichte
i == 0aktuell, siehe QTextBrowser::source()
i > 0forward() Geschichte
backaction.setToolTip(browser.historyTitle(-1));
forwardaction.setToolTip(browser.historyTitle(+1));

QUrl QTextBrowser::historyUrl(int i) const

Gibt die URL des HistoryItems zurück.

EingabeRückgabe
i < 0backward() history
i == 0aktuell, siehe QTextBrowser::source()
i > 0forward() Geschichte

[virtual slot] void QTextBrowser::home()

Ändert das angezeigte Dokument so, dass es das erste Dokument aus der Historie ist.

bool QTextBrowser::isBackwardAvailable() const

Gibt true zurück, wenn der Textbrowser mit backward() in der Dokumentenhistorie rückwärts gehen kann.

Siehe auch backwardAvailable() und backward().

bool QTextBrowser::isForwardAvailable() const

Gibt true zurück, wenn der Textbrowser mit forward() in der Dokumentenhistorie vorwärts gehen kann.

Siehe auch forwardAvailable() und forward().

[override virtual protected] void QTextBrowser::keyPressEvent(QKeyEvent *ev)

Reimplements: QTextEdit::keyPressEvent(QKeyEvent *e).

Das Ereignis ev wird verwendet, um die folgenden Tastenkombinationen bereitzustellen:

TastendruckAktion
Alt+Linker Pfeilbackward()
Alt+Pfeil rechtsforward()
Alt+Pfeil nach obenhome()

[override virtual] QVariant QTextBrowser::loadResource(int type, const QUrl &name)

Reimplements: QTextEdit::loadResource(int type, const QUrl &name).

Diese Funktion wird aufgerufen, wenn das Dokument geladen wird und für jedes Bild im Dokument. Die type gibt den Typ der zu ladenden Ressource an. Ein ungültiger QVariant wird zurückgegeben, wenn die Ressource nicht geladen werden kann.

Die Standardimplementierung ignoriert type und versucht, die Ressourcen zu finden, indem sie name als Dateinamen interpretiert. Wenn es sich nicht um einen absoluten Pfad handelt, wird versucht, die Datei in den Pfaden der Eigenschaft searchPaths und im selben Verzeichnis wie die aktuelle Quelle zu finden. Bei Erfolg ist das Ergebnis ein QVariant, das eine QByteArray mit dem Inhalt der Datei speichert.

Wenn Sie diese Funktion neu implementieren, können Sie andere QVariant Typen zurückgeben. Die folgende Tabelle zeigt, welche Variantentypen je nach Ressourcentyp unterstützt werden:

[override virtual protected] void QTextBrowser::mouseMoveEvent(QMouseEvent *e)

Reimplements: QTextEdit::mouseMoveEvent(QMouseEvent *e).

[override virtual protected] void QTextBrowser::mousePressEvent(QMouseEvent *e)

Reimplements: QTextEdit::mousePressEvent(QMouseEvent *e).

[override virtual protected] void QTextBrowser::mouseReleaseEvent(QMouseEvent *e)

Reimplements: QTextEdit::mouseReleaseEvent(QMouseEvent *e).

[override virtual protected] void QTextBrowser::paintEvent(QPaintEvent *e)

Reimplements: QTextEdit::paintEvent(QPaintEvent *event).

[virtual slot] void QTextBrowser::reload()

Lädt die aktuell eingestellte Quelle erneut.

[slot] void QTextBrowser::setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)

Versucht, das Dokument unter der angegebenen Adresse url mit der angegebenen type zu laden.

Wenn type UnknownResource ist (Standardeinstellung), wird der Dokumenttyp erkannt: d.h. wenn die URL mit einer Erweiterung von .md, .mkd oder .markdown endet, wird das Dokument über QTextDocument::setMarkdown() geladen; andernfalls wird es über QTextDocument::setHtml() geladen. Diese Erkennung kann umgangen werden, indem die type explizit angegeben wird.

Hinweis: Setter-Funktion für die Eigenschaft source.

Siehe auch source().

[signal] void QTextBrowser::sourceChanged(const QUrl &src)

Dieses Signal wird ausgesendet, wenn sich die Quelle geändert hat, wobei src die neue Quelle ist.

Quellenwechsel erfolgen sowohl programmatisch durch den Aufruf von setSource(), forward(), backward() oder home() als auch durch das Anklicken von Links oder das Drücken der entsprechenden Tastenkombinationen durch den Benutzer.

© 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.