Класс QTextBrowser
Класс QTextBrowser предоставляет богатый текстовый браузер с навигацией по гиперссылкам. Подробнее...
| Заголовок: | #include <QTextBrowser> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QTextEdit |
Свойства
|
|
Открытые функции
| 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 |
Переопределённые открытые функции
| virtual QVariant | loadResource(int type, const QUrl &name) override |
Открытые слоты
| virtual void | backward() |
| virtual void | forward() |
| virtual void | home() |
| virtual void | reload() |
| void | setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource) |
Сигналы
| 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) |
Защищенные функции
| virtual void | doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource) |
Переопределённые защищенные функции
| 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 |
Подробное описание
Этот класс расширяет QTextEdit (в режиме только для чтения), добавляя некоторую функциональность навигации, чтобы пользователи могли переходить по ссылкам в гипертекстовых документах.
Если вы хотите предоставить своим пользователям редактор форматированного текста с возможностью редактирования, используйте QTextEdit. Если вам нужен текстовый браузер без навигации по гиперссылкам, используйте QTextEdit и используйте QTextEdit::setReadOnly() для отключения редактирования. Если вам нужно только отобразить небольшой фрагмент форматированного текста, используйте QLabel.
Источник и содержимое документа
Содержимое QTextEdit устанавливается с помощью setHtml() или setPlainText(), но QTextBrowser также реализует функцию setSource(), что позволяет использовать именованный документ в качестве исходного текста. Имя ищется в списке путей поиска и в каталоге текущей фабрики документа.
Если имя документа заканчивается якорем (например, "#anchor"), браузер автоматически прокручивается до этой позиции (используя scrollToAnchor()). Когда пользователь нажимает на гиперссылку, браузер вызовет setSource() сам, используя значение href ссылки в качестве аргумента. Вы можете отслеживать текущий источник, подключившись к сигналу sourceChanged().
Навигация
QTextBrowser предоставляет слоты backward() и forward() для реализации кнопок «Назад» и «Вперед». Слот home() устанавливает текст в первый отображаемый документ. Сигнал anchorClicked() генерируется при нажатии пользователем на ссылку. Чтобы переопределить стандартное поведение навигации браузера, вызовите функцию setSource() для предоставления нового текста документа в слоте, подключенном к этому сигналу.
Если вы хотите загрузить документы, хранящиеся в системе ресурсов Qt, используйте qrc в качестве схемы в URL для загрузки. Например, для пути к ресурсу документа :/docs/index.html используйте qrc:/docs/index.html в качестве URL с setSource().
См. также QTextEdit и QTextDocument.
Документация свойств
[read-only] modified : const bool
Это свойство содержит значение, указывающее, были ли изменены содержимое текстового браузера.
openExternalLinks : bool
Указывает, должен ли QTextBrowser автоматически открывать ссылки на внешние источники с помощью QDesktopServices::openUrl() вместо генерации сигнала anchorClicked. Ссылки считаются внешними, если их схема не является file или qrc.
Значение по умолчанию — false.
Функции доступа:
| bool | openExternalLinks() const |
| void | setOpenExternalLinks(bool open) |
openLinks : bool
Это свойство определяет, должен ли QTextBrowser автоматически открывать ссылки, которые пользователь пытается активировать с помощью мыши или клавиатуры.
Независимо от значения этого свойства сигнал anchorClicked всегда генерируется.
Значение по умолчанию — true.
Функции доступа:
| bool | openLinks() const |
| void | setOpenLinks(bool open) |
readOnly : const bool
Это свойство содержит значение, указывающее, является ли текстовый браузер только для чтения.
По умолчанию это свойство true.
searchPaths : QStringList
Это свойство содержит пути поиска, используемые текстовым браузером для поиска вспомогательного содержимого.
QTextBrowser использует этот список для поиска изображений и документов.
По умолчанию это свойство содержит пустой список строк.
Функции доступа:
| QStringList | searchPaths() const |
| void | setSearchPaths(const QStringList &paths) |
source : QUrl
Это свойство содержит имя отображаемого документа.
Это недействительный URL, если документ не отображается или источник неизвестен.
При установке этого свойства QTextBrowser пытается найти документ с указанным именем в путях свойства searchPaths и в каталоге текущего источника, если значение не является абсолютным путем к файлу. Также проверяются необязательные якоря, и документ прокручивается соответственно.
Если первый тег в документе <qt type=detail>, документ отображается как всплывающее окно, а не как новый документ в окне браузера. В противном случае документ отображается в текстовом браузере обычным образом с текстом, содержащим содержимое именованного документа с помощью QTextDocument::setHtml() или QTextDocument::setMarkdown(), в зависимости от того, оканчивается ли имя файла каким-либо из известных расширений Markdown.
Если вы хотите избежать автоматического определения типа и указать тип явно, вызовите setSource() вместо установки этого свойства.
По умолчанию это свойство содержит пустой URL.
Функции доступа:
| QUrl | source() const |
| void | setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource) |
[read-only] sourceType : const QTextDocument::ResourceType
Это свойство содержит тип отображаемого документа.
Это QTextDocument::UnknownResource, если документ не отображается или тип источника неизвестен. В противном случае он содержит обнаруженный тип или тип, указанный при вызове setSource().
Функции доступа:
| QTextDocument::ResourceType | sourceType() const |
undoRedoEnabled : const bool
Это свойство содержит значение, указывающее, поддерживает ли текстовый браузер операции отмены/повтор.
По умолчанию это свойство false.
Документация функций-членов
QTextBrowser::QTextBrowser(QWidget *parent = nullptr)
Создаёт пустой QTextBrowser с родителем parent.
[signal] void QTextBrowser::anchorClicked(const QUrl &link)
Этот сигнал генерируется, когда пользователь нажимает на ссылку. URL, на который указывает ссылка, передаётся в link.
Обратите внимание, что браузер автоматически выполнит навигацию к указанному в link местоположению, если свойство openLinks не установлено в false или вы не вызываете setSource() в подключенном слоте. Этот механизм используется для переопределения стандартных функций навигации браузера.
[virtual slot] void QTextBrowser::backward()
Изменяет отображаемый документ на предыдущий документ в списке документов, созданном при навигации по ссылкам. Не делает ничего, если нет предыдущего документа.
См. также forward() и backwardAvailable().
[signal] void QTextBrowser::backwardAvailable(bool available)
Этот сигнал генерируется, когда доступность backward() изменяется. available имеет значение false, когда пользователь находится на странице home; в противном случае — true.
[virtual slot] void QTextBrowser::forward()
Изменяет отображаемый документ на следующий документ в списке документов, созданном при навигации по ссылкам. Не делает ничего, если нет следующего документа.
См. также backward() и forwardAvailable().
[signal] void QTextBrowser::forwardAvailable(bool available)
Этот сигнал генерируется, когда доступность forward() изменяется. available имеет значение true после навигации с помощью backward() и false при навигации или переходе с помощью forward().
[signal] void QTextBrowser::highlighted(const QUrl &link)
Этот сигнал генерируется, когда пользователь выбрал, но не активировал ссылку в документе. URL, на который указывает ссылка, передаётся в link.
[signal] void QTextBrowser::historyChanged()
Этот сигнал генерируется, когда история изменяется.
См. также historyTitle() и historyUrl().
[virtual slot] void QTextBrowser::home()
Изменяет отображаемый документ на первый документ из истории.
[virtual slot] void QTextBrowser::reload()
Перезагружает текущий источник.
[slot] void QTextBrowser::setSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)
Попытка загрузить документ по указанному url с указанным type.
Если type равен UnknownResource (значение по умолчанию), тип документа будет определён: то есть, если url заканчивается расширением .md, .mkd или .markdown, документ будет загружен с помощью QTextDocument::setMarkdown(); в противном случае он будет загружен с помощью QTextDocument::setHtml(). Это определение можно обойти, явно указав type.
Примечание: Метод-сеттер для свойства source.
См. также source().
[signal] void QTextBrowser::sourceChanged(const QUrl &src)
Этот сигнал испускается, когда источник изменился, src — новый источник.
Изменение источника происходит как программно, при вызове setSource(), forward(), backword() или home(), так и при нажатии пользователем на ссылки или эквивалентных комбинациях клавиш.
int QTextBrowser::backwardHistoryCount() const
Возвращает количество позиций назад в истории.
void QTextBrowser::clearHistory()
Очищает историю посещённых документов и отключает навигацию вперёд и назад.
См. также backward() и forward().
[virtual protected] void QTextBrowser::doSetSource(const QUrl &url, QTextDocument::ResourceType type = QTextDocument::UnknownResource)
Попытка загрузить документ по указанному url с заданным типом type.
setSource() вызывает doSetSource. В Qt 5, setSource(const QUrl &url) был виртуальным методом. В Qt 6, виртуальным методом стал doSetSource(), чтобы его можно было переопределить в подклассах.
[override virtual protected] bool QTextBrowser::event(QEvent *e)
Переопределяет: QAbstractScrollArea::event(QEvent *event).
[override virtual protected] bool QTextBrowser::focusNextPrevChild(bool next)
Переопределяет: QTextEdit::focusNextPrevChild(bool next).
[override virtual protected] void QTextBrowser::focusOutEvent(QFocusEvent *ev)
Переопределяет: QTextEdit::focusOutEvent(QFocusEvent *e).
int QTextBrowser::forwardHistoryCount() const
Возвращает количество позиций вперёд в истории.
QString QTextBrowser::historyTitle(int i) const
Возвращает documentTitle() элемента истории.
| Вход | Возврат |
|---|---|
| i < 0 | история backward() |
| i == 0 | текущий, см. QTextBrowser::source() |
| i > 0 | история forward() |
backaction.setToolTip(browser.historyTitle(-1)); forwardaction.setToolTip(browser.historyTitle(+1));
QUrl QTextBrowser::historyUrl(int i) const
Возвращает url элемента истории.
| Вход | Возврат |
|---|---|
| i < 0 | история backward() |
| i == 0 | текущий, см. QTextBrowser::source() |
| i > 0 | история forward() |
bool QTextBrowser::isBackwardAvailable() const
Возвращает true если текстовый браузер может перейти назад в истории документов с помощью backward().
См. также backwardAvailable() и backward().
bool QTextBrowser::isForwardAvailable() const
Возвращает true если текстовый браузер может перейти вперёд в истории документов с помощью forward().
См. также forwardAvailable() и forward().
[override virtual protected] void QTextBrowser::keyPressEvent(QKeyEvent *ev)
Переопределяет: QTextEdit::keyPressEvent(QKeyEvent *e).
Событие ev используется для предоставления следующих сочетаний клавиш:
| Нажатие клавиш | Действие |
|---|---|
| Alt+Левая стрелка | backward() |
| Alt+Правая стрелка | forward() |
| Alt+Вверх стрелка | home() |
[override virtual] QVariant QTextBrowser::loadResource(int type, const QUrl &name)
Переопределяет: QTextEdit::loadResource(int type, const QUrl &name).
Этот метод вызывается при загрузке документа и для каждого изображения в документе. type указывает тип ресурса, который необходимо загрузить. Если ресурс не может быть загружен, возвращается некорректное значение QVariant.
Стандартная реализация игнорирует type и пытается найти ресурсы, интерпретируя name как имя файла. Если это не абсолютный путь, она пытается найти файл в путях свойства searchPaths и в той же директории, что и текущий источник. В случае успеха результатом является QVariant, хранящий QByteArray с содержимым файла.
Если вы переопределяете этот метод, вы можете возвращать другие типы QVariant. Таблица ниже показывает, какие типы QVariant поддерживаются в зависимости от типа ресурса:
[override virtual protected] void QTextBrowser::mouseMoveEvent(QMouseEvent *e)
Переопределяет: QTextEdit::mouseMoveEvent(QMouseEvent *e).
[override virtual protected] void QTextBrowser::mousePressEvent(QMouseEvent *e)
Переопределяет: QTextEdit::mousePressEvent(QMouseEvent *e).
[override virtual protected] void QTextBrowser::mouseReleaseEvent(QMouseEvent *e)
Переопределяет: QTextEdit::mouseReleaseEvent(QMouseEvent *e).
[override virtual protected] void QTextBrowser::paintEvent(QPaintEvent *e)
Переопределяет: QTextEdit::paintEvent(QPaintEvent *event).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qtextbrowser.html