Auf dieser Seite

QTextBrowser Class

Die Klasse „QTextBrowser“ stellt einen Rich-Text-Browser mit Hypertext-Navigation bereit. Mehr...

Kopfzeile: #include <QTextBrowser>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Erbt von: 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

Neu implementierte ö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)

Neu implementierte 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 schreibgeschützten Modus) und fügt einige Navigationsfunktionen hinzu, damit Benutzer Links in Hypertext-Dokumenten folgen können.

Wenn Sie Ihren Benutzern einen bearbeitbaren Rich-Text-Editor zur Verfügung stellen möchten, verwenden Sie ` QTextEdit`. Wenn Sie einen Textbrowser ohne Hypertext-Navigation wünschen, verwenden Sie ` QTextEdit` und deaktivieren Sie die Bearbeitung mit ` QTextEdit::setReadOnly()`. Wenn Sie lediglich einen kleinen Ausschnitt aus Rich Text anzeigen möchten, verwenden Sie ` QLabel`.

Dokumentquelle und Inhalt

Der Inhalt von QTextEdit wird mit setHtml() oder setPlainText() festgelegt, aber QTextBrowser implementiert auch die Funktion setSource(), wodurch es möglich ist, ein benanntes Dokument als Quelltext zu verwenden. Der Name wird in einer Liste von Suchpfaden und im Verzeichnis der aktuellen Dokumentfabrik gesucht.

Endet ein Dokumentname mit einem Anker (z. B. „#anchor"), scrollt der Textbrowser automatisch zu dieser Position (unter Verwendung von ` scrollToAnchor()`). Wenn der Benutzer auf einen Hyperlink klickt, ruft der Browser selbst ` setSource()` mit dem ` href `-Wert des Links als Argument auf. Sie können die aktuelle Quelle verfolgen, indem Sie sich an das Signal ` sourceChanged()` anschließen.

QTextBrowser stellt die Slots „ backward()“ und „ forward()“ zur Verfügung, mit denen Sie die Schaltflächen „Zurück“ und „Weiter“ implementieren können. Der Slot „ home()“ setzt den Text auf das allererste angezeigte Dokument. Das Signal „ anchorClicked()“ wird ausgelöst, wenn der Benutzer auf einen Anker klickt. Um das Standard-Navigationsverhalten des Browsers zu überschreiben, rufen Sie die Funktion „ setSource “ () auf, um in einem mit diesem Signal verbundenen Slot einen neuen Dokumenttext anzugeben.

Wenn Sie Dokumente laden möchten, die im Qt-Ressourcensystem gespeichert sind, verwenden Sie qrc als Schema in der zu ladenden URL. Verwenden Sie beispielsweise für den Dokumentressourcenpfad :/docs/index.html die URL qrc:/docs/index.html mit setSource().

Siehe auch QTextEdit und QTextDocument.

Dokumentation zu den Eigenschaften

[read-only] modified : bool

Diese Eigenschaft gilt unabhängig davon, ob der Inhalt des Textbrowsers geändert wurde

Legt fest, ob „ QTextBrowser “ Links zu externen Quellen automatisch mit „ QDesktopServices::openUrl()“ öffnen soll, anstatt das Signal „ anchorClicked “ auszulösen. Links gelten als extern, 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 “ Links automatisch öffnen soll, die der Benutzer mit der Maus oder der Tastatur zu aktivieren versucht.

Unabhängig vom Wert dieser Eigenschaft wird das Signal „ anchorClicked “ immer ausgelöst.

Der Standardwert ist „true“.

Zugriffsfunktionen:

bool openLinks() const
void setOpenLinks(bool open)

readOnly : bool

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

Standardmäßig ist diese Eigenschaft auf „ true “ gesetzt.

searchPaths : QStringList

Diese Eigenschaft enthält die Suchpfade, die der Textbrowser verwendet, um begleitende Inhalte zu finden

QTextBrowser nutzt diese Liste, um Bilder und Dokumente zu finden.

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

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 die Quelle unbekannt ist.

Beim Festlegen dieser Eigenschaft versucht QTextBrowser, ein Dokument mit dem angegebenen Namen in den Pfaden der Eigenschaft „ searchPaths “ und im Verzeichnis der aktuellen Quelle zu finden, es sei denn, der Wert ist ein absoluter Dateipfad. Außerdem wird nach optionalen Ankerpunkten gesucht und das Dokument entsprechend gescrollt

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

Wenn Sie die automatische Typenerkennung vermeiden und den Typ explizit festlegen 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 : QTextDocument::ResourceType

Diese Eigenschaft enthält den Typ des angezeigten Dokuments

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

Zugriffsfunktionen:

QTextDocument::ResourceType sourceType() const

undoRedoEnabled : bool

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

Standardmäßig lautet der Wert dieser Eigenschaft „ false “.

Dokumentation der Member-Funktionen

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

Erstellt einen leeren QTextBrowser mit dem übergeordneten Element „ parent “.

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

Dieses Signal wird ausgelöst, wenn der Benutzer auf einen Anker klickt. Die URL, auf die der Anker verweist, wird in „ link “ übergeben.

Beachten Sie, dass der Browser die Navigation zu der durch „ link “ angegebenen Adresse automatisch übernimmt, 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 Standard-Navigationsfunktionen des Browsers zu überschreiben.

[virtual slot] void QTextBrowser::backward()

Wechselt das angezeigte Dokument zum vorherigen Dokument in der Liste der Dokumente, die durch das Navigieren über Links erstellt wurde. Es geschieht nichts, wenn kein vorheriges Dokument vorhanden ist.

Siehe auch forward() und backwardAvailable().

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

Dieses Signal wird ausgelöst, wenn sich die Verfügbarkeit von backward() ändert. available ist „false“, wenn sich der Benutzer unter home() befindet; andernfalls ist es „true“.

int QTextBrowser::backwardHistoryCount() const

Gibt die Anzahl der Positionen zurück, die man im Verlauf rückwärts zurückgehen muss.

void QTextBrowser::clearHistory()

Löscht den Verlauf der aufgerufenen Dokumente und deaktiviert die Navigation vorwärts und rückwärts.

Siehe auch backward() und forward().

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

Es wird versucht, das Dokument unter der angegebenen Adresse url mit der angegebenen URL type zu laden.

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

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

Umsetzt: ` QAbstractScrollArea::event(QEvent *event)`.

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

Implementiert: ` QTextEdit::focusNextPrevChild` (bool next).

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

Umsetzt: ` QTextEdit::focusOutEvent(QFocusEvent *e)`.

[virtual slot] void QTextBrowser::forward()

Wechselt das angezeigte Dokument zum nächsten Dokument in der Liste der Dokumente, die durch das Navigieren über Links erstellt wurde. Führt keine Aktion aus, wenn kein nächstes Dokument vorhanden ist.

Siehe auch backward() und forwardAvailable().

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

Dieses Signal wird ausgelöst, wenn sich die Verfügbarkeit von „ forward “ () ändert. „ available “ ist wahr, nachdem der Benutzer zu „ backward “ () navigiert ist, und falsch, wenn der Benutzer zu „ forward “ () navigiert oder diese Seite verlässt.

int QTextBrowser::forwardHistoryCount() const

Gibt die Anzahl der Positionen in der Historie zurück, die in die Zukunft reichen.

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

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

[signal] void QTextBrowser::historyChanged()

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

Siehe auch historyTitle() und historyUrl().

QString QTextBrowser::historyTitle(int i) const

Gibt die ` documentTitle()` des `HistoryItem` zurück.

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

QUrl QTextBrowser::historyUrl(int i) const

Gibt die URL des HistoryItem zurück.

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

[virtual slot] void QTextBrowser::home()

Wechselt das angezeigte Dokument zum ersten Dokument aus dem Verlauf.

bool QTextBrowser::isBackwardAvailable() const

Gibt „ true “ zurück, wenn der Textbrowser mithilfe von „ backward()“ im Dokumentverlauf zurückblättern kann.

Siehe auch „ backwardAvailable()“ und „ backward()“.

bool QTextBrowser::isForwardAvailable() const

Gibt „ true “ zurück, wenn der Textbrowser mithilfe von „ forward()“ im Dokumentverlauf vorwärts blättern kann.

Siehe auch „ forwardAvailable()“ und „ forward()“.

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

Implementiert: ` QTextEdit::keyPressEvent(QKeyEvent *e)`.

Das Ereignis ` ev ` wird verwendet, um die folgenden Tastaturkürzel bereitzustellen:

TastendruckAktion
Alt+Pfeil nach linksbackward()
Alt+Pfeil nach rechtsforward()
Alt+Pfeil nach obenhome()

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

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

Diese Funktion wird beim Laden des Dokuments sowie für jedes Bild im Dokument aufgerufen. Der Parameter „ type “ gibt den Typ der zu ladenden Ressource an. Wenn die Ressource nicht geladen werden kann, wird ein ungültiger „ QVariant “ zurückgegeben.

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

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

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

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

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

Implementiert: ` QTextEdit::mousePressEvent(QMouseEvent *e)`.

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

Implementiert neu: ` QTextEdit::mouseReleaseEvent(QMouseEvent *e)`.

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

Umsetzt: ` QTextEdit::paintEvent` (`QPaintEvent *event`).

[virtual slot] void QTextBrowser::reload()

Lädt die aktuelle Quelle neu.

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

Es wird versucht, das Dokument unter der angegebenen Adresse url mit dem angegebenen Dokumenttyp type zu laden.

Wenn type gleich UnknownResource ist (Standard), wird der Dokumenttyp erkannt: Das heißt, wenn die URL mit einer Erweiterung wie .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 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 ausgelöst, wenn sich die Quelle geändert hat, wobei src die neue Quelle ist.

Quellenwechsel erfolgen sowohl programmgesteuert beim Aufruf von ` setSource()`, ` forward()`, ` backward()` oder ` home()` als auch, wenn der Benutzer auf Links klickt oder die entsprechenden Tastenkombinationen drückt.

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