QTextBrowser Class▲
-
Header: QTextBrowser
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
-
qmake: QT += widgets
-
Inherits: QTextEdit
-
Group: QTextBrowser is part of richtext-processing
Detailed Description▲
This class extends QTextEdit (in read-only mode), adding some navigation functionality so that users can follow links in hypertext documents.
If you want to provide your users with an editable rich text editor, use QTextEdit. If you want a text browser without hypertext navigation use QTextEdit, and use QTextEdit::setReadOnly() to disable editing. If you just need to display a small piece of rich text use QLabel.
Document Source and Contents▲
The contents of QTextEdit are set with setHtml() or setPlainText(), but QTextBrowser also implements the setSource() function, making it possible to use a named document as the source text. The name is looked up in a list of search paths and in the directory of the current document factory.
If a document name ends with an anchor (for example, "#anchor"), the text browser automatically scrolls to that position (using scrollToAnchor()). When the user clicks on a hyperlink, the browser will call setSource() itself with the link's href value as argument. You can track the current source by connecting to the sourceChanged() signal.
Navigation▲
If you want to load documents stored in the Qt resource system use qrc as the scheme in the URL to load. For example, for the document resource path :/docs/index.html use qrc:/docs/index.html as the URL with setSource().
See Also▲
See also QTextEdit, QTextDocument
Property Documentation▲
[read-only] modified : const bool▲
This property holds whether the contents of the text browser have been modified
openExternalLinks : bool▲
Specifies whether QTextBrowser should automatically open links to external sources using QDesktopServices::openUrl() instead of emitting the anchorClicked signal. Links are considered external if their scheme is neither file or qrc.
The default value is false.
Access functions:
-
bool openExternalLinks() const
-
void setOpenExternalLinks(bool open)
openLinks : bool▲
This property specifies whether QTextBrowser should automatically open links the user tries to activate by mouse or keyboard.
Regardless of the value of this property the anchorClicked signal is always emitted.
The default value is true.
Access functions:
-
bool openLinks() const
-
void setOpenLinks(bool open)
readOnly : bool▲
This property holds whether the text browser is read-only
By default, this property is true.
Access functions:
-
bool isReadOnly() const
-
void setReadOnly(bool ro)
searchPaths : QStringList▲
This property holds the search paths used by the text browser to find supporting content
QTextBrowser uses this list to locate images and documents.
By default, this property contains an empty string list.
Access functions:
-
searchPaths() const
-
void setSearchPaths(const &paths)
source : QUrl▲
This property holds the name of the displayed document.
This is a an invalid url if no document is displayed or if the source is unknown.
When setting this property QTextBrowser tries to find a document with the specified name in the paths of the searchPaths property and directory of the current source, unless the value is an absolute file path. It also checks for optional anchors and scrolls the document accordingly
If the first tag in the document is <qt type=detail>, the document is displayed as a popup rather than as new document in the browser window itself. Otherwise, the document is displayed normally in the text browser with the text set to the contents of the named document with QTextDocument::setHtml() or QTextDocument::setMarkdown(), depending on whether the filename ends with any of the known Markdown file extensions.
If you would like to avoid automatic type detection and specify the type explicitly, call setSource() rather than setting this property.
By default, this property contains an empty URL.
Access functions:
-
source() const
-
void setSource(const &url, type = QTextDocument::UnknownResource)
[read-only] sourceType : const QTextDocument::ResourceType▲
This property holds the type of the displayed document
This is QTextDocument::UnknownResource if no document is displayed or if the type of the source is unknown. Otherwise it holds the type that was detected, or the type that was specified when setSource() was called.
Access functions:
-
sourceType() const
undoRedoEnabled : bool▲
This property holds whether the text browser supports undo/redo operations
By default, this property is false.
Access functions:
-
bool isUndoRedoEnabled() const
-
void setUndoRedoEnabled(bool enable)
Member Function Documentation▲
[explicit] QTextBrowser::QTextBrowser(QWidget *parent = nullptr)▲
Constructs an empty QTextBrowser with parent parent.
void QTextBrowser::anchorClicked(const QUrl &link)▲
This signal is emitted when the user clicks an anchor. The URL referred to by the anchor is passed in link.
Note that the browser will automatically handle navigation to the location specified by link unless the openLinks property is set to false or you call setSource() in a slot connected. This mechanism is used to override the default navigation features of the browser.
[virtual] void QTextBrowser::backward()▲
Changes the document displayed to the previous document in the list of documents built by navigating links. Does nothing if there is no previous document.
See Also▲
See also forward(), backwardAvailable()
void QTextBrowser::backwardAvailable(bool available)▲
This signal is emitted when the availability of backward() changes. available is false when the user is at home(); otherwise it is true.
int QTextBrowser::backwardHistoryCount() const▲
Returns the number of locations backward in the history.
void QTextBrowser::clearHistory()▲
Clears the history of visited documents and disables the forward and backward navigation.
See Also▲
[virtual protected] void QTextBrowser::doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)▲
Attempts to load the document at the given url with the specified type.
setSource() calls doSetSource. In Qt 5, setSource(const QUrl &url) was virtual. In Qt 6, doSetSource() is virtual instead, so that it can be overridden in subclasses.
[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] void QTextBrowser::forward()▲
Changes the document displayed to the next document in the list of documents built by navigating links. Does nothing if there is no next document.
See Also▲
See also backward(), forwardAvailable()
void QTextBrowser::forwardAvailable(bool available)▲
This signal is emitted when the availability of forward() changes. available is true after the user navigates backward() and false when the user navigates or goes forward().
int QTextBrowser::forwardHistoryCount() const▲
Returns the number of locations forward in the history.
void QTextBrowser::highlighted(const QUrl &link)▲
This signal is emitted when the user has selected but not activated an anchor in the document. The URL referred to by the anchor is passed in link.
void QTextBrowser::historyChanged()▲
QString QTextBrowser::historyTitle(int i) const▲
Returns the documentTitle() of the HistoryItem.
Input |
Return |
---|---|
i < 0 |
backward() history |
i == 0 |
current, see QTextBrowser::source() |
i > 0 |
forward() history |
backaction.setToolTip(browser.historyTitle(-
1
));
forwardaction.setToolTip(browser.historyTitle(+
1
));
QUrl QTextBrowser::historyUrl(int i) const▲
Returns the url of the HistoryItem.
Input |
Return |
---|---|
i < 0 |
backward() history |
i == 0 |
current, see QTextBrowser::source() |
i > 0 |
forward() history |
[virtual] void QTextBrowser::home()▲
Changes the document displayed to be the first document from the history.
bool QTextBrowser::isBackwardAvailable() const▲
Returns true if the text browser can go backward in the document history using backward().
See Also▲
See also backwardAvailable(), backward()
bool QTextBrowser::isForwardAvailable() const▲
Returns true if the text browser can go forward in the document history using forward().
See Also▲
See also forwardAvailable(), forward()
[override virtual protected] void QTextBrowser::keyPressEvent(QKeyEvent *ev)▲
Reimplements: QTextEdit::keyPressEvent(QKeyEvent *e).
The event ev is used to provide the following keyboard shortcuts:
[override virtual] QVariant QTextBrowser::loadResource(int type, const QUrl &name)▲
Reimplements: QTextEdit::loadResource(int type, const QUrl &name).
This function is called when the document is loaded and for each image in the document. The type indicates the type of resource to be loaded. An invalid QVariant is returned if the resource cannot be loaded.
The default implementation ignores type and tries to locate the resources by interpreting name as a file name. If it is not an absolute path it tries to find the file in the paths of the searchPaths property and in the same directory as the current source. On success, the result is a QVariant that stores a QByteArray with the contents of the file.
If you reimplement this function, you can return other QVariant types. The table below shows which variant types are supported depending on the resource type:
[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] void QTextBrowser::reload()▲
Reloads the current set source.
void QTextBrowser::setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)▲
Attempts to load the document at the given url with the specified type.
If type is UnknownResource (the default), the document type will be detected: that is, if the url ends with an extension of .md, .mkd or .markdown, the document will be loaded via QTextDocument::setMarkdown(); otherwise it will be loaded via QTextDocument::setHtml(). This detection can be bypassed by specifying the type explicitly.
Setter function for property source.
See Also▲
See also source()