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 |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QTextBrowser ist Teil der Rich Text Processing APIs.
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.
Navigation
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
openExternalLinks : bool
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) |
openLinks : bool
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.
Eingabe | Rückgabe |
---|---|
i < 0 | backward() Geschichte |
i == 0 | aktuell, siehe QTextBrowser::source() |
i > 0 | forward() Geschichte |
backaction.setToolTip(browser.historyTitle(-1)); forwardaction.setToolTip(browser.historyTitle(+1));
QUrl QTextBrowser::historyUrl(int i) const
Gibt die URL des HistoryItems zurück.
Eingabe | Rückgabe |
---|---|
i < 0 | backward() history |
i == 0 | aktuell, siehe QTextBrowser::source() |
i > 0 | forward() 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:
[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.